Skip to content

Commit 51fe231

Browse files
authored
Docs Release 2023-05-004
- Real-time Machine Learning (ML) pipelines tutorial. - Real-time Machine Learning (ML) predictions tutorial. - Updated security policy. - Other small updates and fixes.
2 parents 207294f + 4e2ca12 commit 51fe231

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+1022
-786
lines changed

RUNNING-DOCS-LOCALLY.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ To run these docs locally you'll need:
1414

1515
If you want to fully render all documentation locally you need to install the following plugins with `pip install`:
1616

17-
* [glightbox](https://pypi.org/project/mkdocs-glightbox/0.1.0/)
18-
* [multirepo](https://pypi.org/project/mkdocs-multirepo/)
19-
* [redirects](https://pypi.org/project/mkdocs-redirects/)
17+
* [mkdocs-glightbox](https://pypi.org/project/mkdocs-glightbox/0.1.0/)
18+
* [mkdocs-multirepo](https://pypi.org/project/mkdocs-multirepo/)
19+
* [mkdocs-redirects](https://pypi.org/project/mkdocs-redirects/)
2020

2121
You also need to sign up to the [Insiders Programme](https://squidfunk.github.io/mkdocs-material/insiders/).
2222

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,25 @@
11
# Introduction
22

3-
The Data Catalogue HTTP API allows you to fetch data stored in the Quix
4-
platform. You can use it for exploring the platform, prototyping
5-
applications, or working with stored data in any language with HTTP
6-
capabilities.
3+
The Data Catalogue HTTP API allows you to fetch data stored in the Quix platform. You can use it for exploring the platform, prototyping applications, or working with stored data in any language with HTTP capabilities.
74

8-
The API is fully described in our [Swagger
9-
documentation](get-swagger.md). Read on for
10-
a guide to using the API, including real-world examples you can execute
11-
from your language of choice, or via the command line using `curl`.
5+
The API is fully described in our [Swagger documentation](get-swagger.md). Read on for a guide to using the API, including real-world examples you can invoke from your language of choice, or using the command line using `curl`.
126

137
## Preparation
148

15-
Before using any of the endpoints, you’ll need to know how to
16-
[authenticate your requests](authenticate.md) and
17-
how to [form a typical request to the
18-
API](request.md).
9+
Before using any of the endpoints, you’ll need to know how to [authenticate your requests](authenticate.md) and how to [form a typical request to the API](request.md).
1910

20-
You’ll also need to have some data stored in the Quix platform for API
21-
use to be meaningful. You can use any Source from our [Code Samples](../../platform/samples/samples.md) to do this using the Quix
22-
portal.
11+
You’ll also need to have some data stored in the Quix platform for API use to be meaningful. You can use any Source from our [Code Samples](../../platform/samples/samples.md) to do this using the Quix portal.
2312

2413
## Further documentation
2514

26-
| | | |
27-
| ------------------------------------------------------------------ | ------------------ | ----------------------------------------- |
28-
| Documentation | Endpoint | Examples |
15+
| Documentation | Endpoint | Examples |
16+
| -------------------------------------------- | ------------------ | ----------------------------------------- |
2917
| [Streams, paged](streams-paged.md) | `/streams` | Get all streams in groups of ten per page |
3018
| [Streams, filtered](streams-filtered.md) | `/streams` | Get a single stream, by ID |
31-
| | | Get only the streams with LapNumber data |
19+
| | | Get only the streams with LapNumber data |
3220
| [Streams & models](streams-models.md) | `/streams/models` | Get stream hierarchy |
3321
| [Raw data](raw-data.md) | `/parameters/data` | Get all the `Speed` readings |
34-
| | | Get `Speed` data between timestamps |
22+
| | | Get `Speed` data between timestamps |
3523
| [Aggregated data by time](aggregate-time.md) | `/parameters/data` | Downsample or upsample data |
3624
| [Aggregated by tags](aggregate-tags.md) | `/parameters/data` | Show average Speed by LapNumber |
3725
| [Tag filtering](filter-tags.md) | `/parameters/data` | Get data for just one Lap |

docs/apis/streaming-writer-api/intro.md

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
# Introduction
22

3-
The Streaming Writer API allows you to stream data into the Quix
4-
platform via HTTP endpoints or SignalR. It’s an alternative to using our
5-
C\# and Python client libraries. You can use the Streaming Writer API from any
6-
HTTP-capable language.
7-
8-
The API is fully documented in our [Swagger
9-
documentation](get-swagger.md). Read on for a
10-
guide to using the API, including real-world examples you can execute
11-
from your language of choice, or via the command line using curl.
3+
The Streaming Writer API allows you to stream data into the Quix platform via HTTP endpoints or SignalR. It’s an alternative to using our C# and Python client libraries. You can use the Streaming Writer API from any HTTP-capable language.
4+
5+
The API is fully documented in our [Swagger documentation](get-swagger.md). Read on for a guide to using the API, including real-world examples you can invoke
6+
from your language of choice, or using the command line using curl.
127

138
## Preparation
149

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ Read more about the Quix Streams Client Library and APIs.
117117

118118
---
119119

120-
Query historic time-series data in Quix using HTTP interface.
120+
Query historical time-series data in Quix using HTTP interface.
121121

122122
[:octicons-arrow-right-24: Learn more](./apis/data-catalogue-api/intro.md)
123123

docs/platform/MLOps.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@ a seamless journey from concept to production. The key steps are:
1919
Any member of any team can quickly access data in the Catalogue without
2020
support from software or regulatory teams.
2121

22-
## Develop features in historic data
22+
## Develop features in historical data
2323

2424
Use Visualise to discover, segment, label and store significant features
2525
in the catalogue.
2626

27-
## Build & train models on historic data
27+
## Build & train models on historical data
2828

2929
Use Develop and Deploy to:
3030

3131
- Write model code in Python using their favourite IDE.
3232

33-
- Train models on historic data.
33+
- Train models on historical data.
3434

3535
- Evaluate results against raw data and results from other models.
3636

docs/platform/definitions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Workspaces are collaborative. Multiple users, including developers, data scienti
2222

2323
## Project
2424

25-
A set of code in Quix Platform that can be edited, compiled, executed, and deployed as one Docker image. Projects in Quix Platform are fully version controlled. You can also tag your code as an easy way to manage releases of your project.
25+
A set of code in Quix Platform that can be edited, compiled, run, and deployed as one Docker image. Projects in Quix Platform are fully version controlled. You can also tag your code as an easy way to manage releases of your project.
2626

2727
## Deployment
2828

@@ -153,7 +153,7 @@ A [WebSockets API](../apis/streaming-reader-api/intro.md) used to stream any dat
153153

154154
### Data Catalogue API
155155

156-
An [HTTP API](../apis/data-catalogue-api/intro.md) used to query historic data in the Data Catalogue. Most commonly used for dashboards, analytics and training ML models. Also useful to call historic data when running an ML model, or to call historic data from an external application.
156+
An [HTTP API](../apis/data-catalogue-api/intro.md) used to query historical data in the Data Catalogue. Most commonly used for dashboards, analytics and training ML models. Also useful to call historical data when running an ML model, or to call historical data from an external application.
157157

158158
### Portal API
159159

docs/platform/how-to/jupyter-nb.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ You need to be logged into the platform for this:
5252

5353
![how-to/jupyter-wb/connect-python.png](../../platform/images/how-to/jupyter-wb/connect-python.png)
5454

55-
Copy the Python code to your Jupyter notebook and execute.
55+
Copy the Python code to your Jupyter notebook and run.
5656

5757
![how-to/jupyter-wb/jupyter-results.png](../../platform/images/how-to/jupyter-wb/jupyter-results.png)
5858

docs/platform/how-to/webapps/write.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ req.end();
237237
```
238238

239239
In the preceding example, tags in the event data request are optional.
240-
Tags add context to your data points and help you to execute efficient
240+
Tags add context to your data points and help you to run efficient
241241
queries over them on your data like using indexes in traditional
242242
databases.
243243

docs/platform/security/security.md

Lines changed: 69 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,83 @@
1-
# Security
1+
# Cloud Security Principles
22

3-
This section describes the basic security features of Quix.
3+
## Introduction
44

5-
## Data in flight
5+
Quix's mission is to free developers to build, test and run next-gen applications without the hassle of managing complex technologies. We believe that we must make your data secure and that protecting it is one of our most important responsibilities. We're committed to being transparent about our security practices and helping you understand our approach.
66

7-
### Authentication
7+
Quix includes a robust set of security and data protection product features that give you the control, visibility and flexibility you need to manage all your security challenges, without compromising agility.
88

9-
- Our APIs are authenticated using
10-
[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749){target=_blank} token. We
11-
are using [Auth0](https://auth0.com/docs/protocols/protocol-oauth2){target=_blank}
12-
as our provider.
9+
This document outlines how Quix helps customers configure, deploy and use the cloud service securely.
1310

14-
- Each Kafka server is authenticated using certificate, which is
15-
provided for each project created and can also be downloaded from
16-
topics view. The client is authenticated using SASL (username,
17-
password).
11+
## Authentication
1812

19-
### Authorization
13+
Securing your information starts with identity controls, no matter where your users are located. Quix allows you to manage users, streamline authentication using your identity provider, and assign roles. We give you the solutions to ensure that only the right people can access your company's information in Quix.
2014

21-
- The APIs is using RBAC. You are limited in what you can do based on
22-
your token and the role configured for your user.
15+
OAuth is the protocol Quix uses when you auth against our platform using Google or your preferred Identity provider. Customers are responsible for integrating and managing their identity provider (for single sign-on and provisioning) as well as assigning roles in Quix.
2316

24-
- Each kafka client is authrozied to only read and write to the topics
25-
or query consumer group information regarding topics owned by the
26-
organization the client belongs to.
17+
Data in flight is protected with Authentication (OAuth 2.0 tokens, SASL, SSL Certificates), Authorisation (RBAC) and Encryption (TLS 1.2).
18+
19+
### Two-Factor Authentication
20+
21+
Multi-factor authentication splits channels of an authentication process, rendering just one compromised system or device to be insufficient for use for unauthorised access. It is a widely used technique with a proven record.
22+
23+
Customers may use Two-factor authentication to access Quix. This is welcome and encouraged, but it needs to be enforced. To request it you can write to [[email protected]](mainto:[email protected]).
24+
25+
## Data security
26+
27+
By default, Quix encrypts data at rest and data in transit as part of our foundational security controls. We also provide tools that give you even further protection and control.
2728

2829
### Encryption
2930

30-
- All our APIs communicate with TLS 1.2
31+
Our preferred encryption is TLS 1.3, with 1.2 allowed as a fallback. We don't support TLS 1.1 or older in any part of our platform.
32+
33+
Older cyphers are cryptographically unsafe. We do not serve or support unsafe and weak cyphers, ensuring that our posture is in line with your standards and expectations.
34+
35+
#### Encryption of Data in Flight
36+
37+
Your connection to Quix is secured by the latest in TLS. We also use certificates to encrypt our in-flight traffic internally.
38+
39+
Your traffic to and within Quix is very important to us, and that is why we keep it safe. TLS and the use of certificates at every surface where communication between computers happens ensures we drastically reduce attack vectors and the risk of data falling into the wrong hands.
40+
41+
#### Encryption of Data at Rest
42+
43+
Customer data at rest resides in Azure and AWS. Any persisted data is encrypted with keys managed in a safe and secure manner either by our Cloud Provider vendors or by Quix personnel, adhering to our access policies and procedures.
44+
45+
Data saved on disk is sensitive information and we always treat it as such.
46+
47+
## Separation of Concerns
48+
49+
To give you even further protection and control, we architected Quix on independent environments and firewalls. Logical separation ensures that customers can only access their own data and no one else's: potential malicious usage of the service will not affect the service or data of another.
50+
51+
### Environments
52+
53+
Environments at Quix are hermetically sealed with no reused components between them. Development and Production environments are distinct entities with no cross-talk.
54+
55+
The separation of these concerns allows us to deliver a Quix platform experience in a way that minimizes the chance of errors and mistakes and is a well-supported industry standard of software delivery.
56+
57+
In case you choose to host Quix on your platform, we recommend that you follow the same practices.
58+
59+
### Firewalls
60+
61+
Firewalls in cloud-native infrastructure and applications work differently from how they used to in the days of monolithic apps running on bare metal servers stacked neatly in a server room.
62+
63+
All networking technologies utilised during the delivery of the Quix Platform follow the principle of least privilege; we configure our security groups to only allow the minimum necessary traffic, and we configure our access lists to do the same. We follow industry best practices in architecting these safeguards and constantly monitor and audit them.
64+
65+
## Employee access policies
66+
67+
Quix employees access our key systems with multi-factor authentication enforced. This helps us verify the identity of the person accessing these services and reduce the chance of unauthorised access by way of compromised channels or devices.
68+
69+
At Quix, systems that make up the Quix platform are only ever accessed when necessary and only by authorised personnel. We take our commitment to security and confidentiality seriously.
70+
71+
Restricted access ensures only colleagues in the necessary roles can work on the underlying software and infrastructure stack. This, combined with audit trails built right into our processes and tooling helps us maintain the principle of least privilege, an important security practice.
72+
73+
## Compliance
74+
75+
Quix is aiming to meet and exceed one of the most broadly recognised security standards.
76+
77+
### ISO-27001
3178

32-
## Data at rest
79+
ISO-27001 details IT security management systems and procedures. We are currently pursuing certification under this rigorous standard while actively working towards standardising our written policies and procedures.
3380

34-
- Your data is encrypted at rest using cloud provider (Azure) managed
35-
keys.
81+
An ISO-27001 certification is a quick and easy way to judge the general security posture of an organisation. By obtaining this certification soon, we aim to demonstrate our commitment to information security.
3682

37-
- Your data is phyisically protected at our cloud provider’s location.
83+
We are aiming to complete the internal audit by October 2023 and obtain the certification by the end of the calendar year 2023.

docs/platform/tutorials/currency-alerting/currency-alerting.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@ To learn more, try one of these tutorials:
202202
* [Build a live video processing pipeline using the Transport for London (TfL) traffic cameras and the YOLO ML model for object detection](../image-processing/index.md)
203203
* [Perform sentiment analysis on a stream of Tweets about a given subject](../sentiment-analysis/index.md)
204204
* [Gather and processes data from an RSS feed and get an alert when specific criteria are met](../rss-tutorial/rss-processing-pipeline.md)
205-
* [Stream and visualize real-time telemetry data with an Android app and Streamlit](../telemetry-data/telemetry-data.md)
206205

207206

208207
!!! tip "Getting Help"

0 commit comments

Comments
 (0)