Skip to content

Commit

Permalink
update configurations
Browse files Browse the repository at this point in the history
  • Loading branch information
jkralik committed Dec 15, 2023
1 parent e05b122 commit d8568f3
Show file tree
Hide file tree
Showing 13 changed files with 681 additions and 650 deletions.
4 changes: 2 additions & 2 deletions content/en/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ To phrase the issue in another way, _"What are the most common issues preventing
- Companies are not able or do not have the talent, to complete an end-to-end IoT solution.
- Deployment is unexpectedly complex and many companies do not have the skills to accomplish a proper strategy.
- Providing Security needs to be a seamless and secure data fabric platform.
- Its difficult to make something at scale while maintaining quality.
- It's difficult to make something at scale while maintaining quality.
- Devices need to be scalable so that they connect to everything they need to.
- There will be a large amount of data to run IoT that will need to be stored.

Expand All @@ -19,7 +19,7 @@ The only viable path forward is a collaboration between companies and market ver

The device-to-hub communication represents a unique challenge for engineers because there has never been a historical need for engineers to become knowledgeable in both embedded systems and cloud-native application development.

Our proposed solution to this problem is to emulate a container runtime interface (CRI) architecture and embody Conways law to establish a loose coupling between the "IoT code" (CoAP / IoTivity) and the portions of the system that are much more familiar to the cloud developers.
Our proposed solution to this problem is to emulate a container runtime interface (CRI) architecture and embody Conway's law to establish a loose coupling between the "IoT code" (CoAP / IoTivity) and the portions of the system that are much more familiar to the cloud developers.

## IoT Challenges

Expand Down
2 changes: 1 addition & 1 deletion content/en/docs/architecture/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ IoT itself is most likely not a domain of your business; it is a group of techno
- **Cost Efficient**
Many future users won't have the knowledge about infrastructure and operations of the whole system. They might not have their own data center for hosting of the solution. This increases the importance of ease of use and cost efficiency. Most cloud providers offer a similar set of services from a functional point of view. A solution should be able to take advantage of these services to save money, alleviating the burden of missing know-how and increasing runtime optimizations.
- **Multitenant**
Solution providers which have multiple customers should have the ability to use "one" instance of the system for all customers in a secured way. It is important that a client is only able to access the devices its authorized to access.
Solution providers which have multiple customers should have the ability to use "one" instance of the system for all customers in a secured way. It is important that a client is only able to access the devices it's authorized to access.

## Domain Decomposition

Expand Down
78 changes: 39 additions & 39 deletions content/en/docs/configuration/certificate-authority.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,42 +25,42 @@ A configuration template is available on [certificate-authority/config.yaml](htt

| Property | Type | Description | Default |
| ---------- | -------- | -------------- | ------- |
| `log.level` | string | `Logging enabled from level.` | `"info"` |
| `log.encoding` | string | `Logging format. The supported values are: "json", "console"` | `"json"` |
| `log.stacktrace.enabled` | bool | `Log stacktrace.` | `false` |
| `log.stacktrace.level` | string | `Stacktrace from level.` | `"warn"` |
| `log.encoderConfig.timeEncoder` | string | `Time format for logs. The supported values are: "rfc3339nano", "rfc3339".` | `"rfc3339nano"` |
| `log.level` | string | Logging enabled from level. | `"info"` |
| `log.encoding` | string | Logging format. The supported values are: "json", "console" | `"json"` |
| `log.stacktrace.enabled` | bool | Log stacktrace. | `false` |
| `log.stacktrace.level` | string | Stacktrace from level. | `"warn"` |
| `log.encoderConfig.timeEncoder` | string | Time format for logs. The supported values are: "rfc3339nano", "rfc3339". | `"rfc3339nano"` |

### gRPC API

gRPC API of the Certificate Authority service as defined [here](https://github.com/plgd-dev/hub/blob/main/certificate-authority/pb/service_grpc.pb.go#L19).

| Property | Type | Description | Default |
| ---------- | -------- | -------------- | ------- |
| `apis.grpc.address` | string | `Listen specification <host>:<port> for grpc client connection.` | `"0.0.0.0:9100"` |
| `apis.grpc.enforcementPolicy.minTime` | string | `The minimum amount of time a client should wait before sending a keepalive ping. Otherwise the server close connection.` | `5s`|
| `apis.grpc.enforcementPolicy.permitWithoutStream` | bool | `If true, server allows keepalive pings even when there are no active streams(RPCs). Otherwise the server close connection.` | `true` |
| `apis.grpc.keepAlive.maxConnectionIdle` | string | `A duration for the amount of time after which an idle connection would be closed by sending a GoAway. 0s means infinity.` | `0s` |
| `apis.grpc.keepAlive.maxConnectionAge` | string | `A duration for the maximum amount of time a connection may exist before it will be closed by sending a GoAway. 0s means infinity.` | `0s` |
| `apis.grpc.keepAlive.maxConnectionAgeGrace` | string | `An additive period after MaxConnectionAge after which the connection will be forcibly closed. 0s means infinity.` | `0s` |
| `apis.grpc.keepAlive.time` | string | `After a duration of this time if the server doesn't see any activity it pings the client to see if the transport is still alive.` | `2h` |
| `apis.grpc.keepAlive.timeout` | string | `After having pinged for keepalive check, the client waits for a duration of Timeout and if no activity is seen even after that the connection is closed.` | `20s` |
| `apis.grpc.tls.caPool` | []string | `File paths to the root certificates in PEM format. The file may contain multiple certificates.` | `[]` |
| `apis.grpc.tls.keyFile` | string | `File path to private key in PEM format.` | `""` |
| `apis.grpc.tls.certFile` | string | `File path to certificate in PEM format.` | `""` |
| `apis.grpc.tls.clientCertificateRequired` | bool | `If true, require client certificate.` | `true` |
| `apis.grpc.authorization.ownerClaim` | string | `Claim used to identify owner of the device.` | `"sub"` |
| `apis.grpc.authorization.authority` | string | `Authority is the address of the token-issuing authentication server. Services will use this URI to find and retrieve the public key that can be used to validate the tokens signature.` | `""` |
| `apis.grpc.authorization.audience` | string | `Identifier of the API configured in your OAuth provider.` | `""` |
| `apis.grpc.authorization.http.maxIdleConns` | int | `It controls the maximum number of idle (keep-alive) connections across all hosts. Zero means no limit.` | `16` |
| `apis.grpc.authorization.http.maxConnsPerHost` | int | `It optionally limits the total number of connections per host, including connections in the dialing, active, and idle states. On limit violation, dials will block. Zero means no limit.` | `32` |
| `apis.grpc.authorization.http.maxIdleConnsPerHost` | int | `If non-zero, controls the maximum idle (keep-alive) connections to keep per-host. If zero, DefaultMaxIdleConnsPerHost is used.` | `16` |
| `apis.grpc.authorization.http.idleConnTimeout` | string | `The maximum amount of time an idle (keep-alive) connection will remain idle before closing itself. Zero means no limit.` | `30s` |
| `apis.grpc.authorization.http.timeout` | string | `A time limit for requests made by this Client. A Timeout of zero means no timeout.` | `10s` |
| `apis.grpc.authorization.http.tls.caPool` | []string | `File paths to the root certificates in PEM format. The file may contain multiple certificates.` | `[]` |
| `apis.grpc.authorization.http.tls.keyFile` | string | `File path to private key in PEM format.` | `""` |
| `apis.grpc.authorization.http.tls.certFile` | string | `File path to certificate in PEM format.` | `""` |
| `apis.grpc.authorization.http.tls.useSystemCAPool` | bool | `If true, use system certification pool.` | `false` |
| `apis.grpc.address` | string | Listen specification <host>:<port> for grpc client connection. | `"0.0.0.0:9100"` |
| `apis.grpc.enforcementPolicy.minTime` | string | The minimum amount of time a client should wait before sending a keepalive ping. Otherwise the server close connection. | `5s` |
| `apis.grpc.enforcementPolicy.permitWithoutStream` | bool | If true, server allows keepalive pings even when there are no active streams(RPCs). Otherwise the server close connection. | `true` |
| `apis.grpc.keepAlive.maxConnectionIdle` | string | A duration for the amount of time after which an idle connection would be closed by sending a GoAway. 0s means infinity. | `0s` |
| `apis.grpc.keepAlive.maxConnectionAge` | string | A duration for the maximum amount of time a connection may exist before it will be closed by sending a GoAway. 0s means infinity. | `0s` |
| `apis.grpc.keepAlive.maxConnectionAgeGrace` | string | An additive period after MaxConnectionAge after which the connection will be forcibly closed. 0s means infinity. | `0s` |
| `apis.grpc.keepAlive.time` | string | After a duration of this time if the server doesn't see any activity it pings the client to see if the transport is still alive. | `2h` |
| `apis.grpc.keepAlive.timeout` | string | After having pinged for keepalive check, the client waits for a duration of Timeout and if no activity is seen even after that the connection is closed. | `20s` |
| `apis.grpc.tls.caPool` | []string | File paths to root certificates in PEM format. | `[]` |
| `apis.grpc.tls.keyFile` | string | File path to the private key in PEM format. | `""` |
| `apis.grpc.tls.certFile` | string | File path to the certificate in PEM format. | `""` |
| `apis.grpc.tls.clientCertificateRequired` | bool | If true, require client certificate. | `true` |
| `apis.grpc.authorization.ownerClaim` | string | Claim used to identify owner of the device. | `"sub"` |
| `apis.grpc.authorization.authority` | string | Authority is the address of the token-issuing authentication server. Services will use this URI to find and retrieve the public key that can be used to validate the token's signature. | `""` |
| `apis.grpc.authorization.audience` | string | Identifier of the API configured in your OAuth provider. | `""` |
| `apis.grpc.authorization.http.maxIdleConns` | int | It controls the maximum number of idle (keep-alive) connections across all hosts. Zero means no limit. | `16` |
| `apis.grpc.authorization.http.maxConnsPerHost` | int | It optionally limits the total number of connections per host, including connections in the dialing, active, and idle states. On limit violation, dials will block. Zero means no limit. | `32` |
| `apis.grpc.authorization.http.maxIdleConnsPerHost` | int | If non-zero, controls the maximum idle (keep-alive) connections to keep per-host. If zero, DefaultMaxIdleConnsPerHost is used. | `16` |
| `apis.grpc.authorization.http.idleConnTimeout` | string | The maximum amount of time an idle (keep-alive) connection will remain idle before closing itself. Zero means no limit. | `30s` |
| `apis.grpc.authorization.http.timeout` | string | A time limit for requests made by this Client. A Timeout of zero means no timeout. | `10s` |
| `apis.grpc.authorization.http.tls.caPool` | []string | File paths to root certificates in PEM format. | `[]` |
| `apis.grpc.authorization.http.tls.keyFile` | string | File path to the private key in PEM format. | `""` |
| `apis.grpc.authorization.http.tls.certFile` | string | File path to the certificate in PEM format. | `""` |
| `apis.grpc.authorization.http.tls.useSystemCAPool` | bool | If true, use the system certification pool. | `false` |

### HTTP API

Expand All @@ -69,23 +69,23 @@ gRPC API of the Certificate Authority service as defined [here](https://github.c

| Property | Type | Description | Default |
| ---------- | -------- | -------------- | ------- |
| `apis.http.address` | string | `Listen specification <host>:<port> for http client connection.` | `"0.0.0.0:9101"` |
| `apis.http.readTimeout` | string | `The maximum duration for reading the entire request, including the body by the server. A zero or negative value means there will be no timeout.` | `8s` |
| `apis.http.readHeaderTimeout` | string | `The amount of time allowed to read request headers by the server. If readHeaderTimeout is zero, the value of readTimeout is used. If both are zero, there is no timeout.` | `4s` |
| `apis.http.writeTimeout` | string | `The maximum duration before the server times out writing of the response. A zero or negative value means there will be no timeout.` | `16s` |
| `apis.http.idleTimeout` | string | `The maximum amount of time the server waits for the next request when keep-alives are enabled. If idleTimeout is zero, the value of readTimeout is used. If both are zero, there is no timeout.` | `30s` |
| apis.http.address | string | Listen specification <host>:<port> for http client connection. | `"0.0.0.0:9101"` |
| apis.http.readTimeout | string | The maximum duration for reading the entire request, including the body by the server. A zero or negative value means there will be no timeout. | `8s` |
| apis.http.readHeaderTimeout | string | The amount of time allowed to read request headers by the server. If readHeaderTimeout is zero, the value of readTimeout is used. If both are zero, there is no timeout. | `4s` |
| apis.http.writeTimeout | string | The maximum duration before the server times out writing of the response. A zero or negative value means there will be no timeout. | `16s` |
| apis.http.idleTimeout | string | The maximum amount of time the server waits for the next request when keep-alives are enabled. If idleTimeout is zero, the value of readTimeout is used. If both are zero, there is no timeout. | `30s` |

### Signer

Signer configuration to issue identity certificates for devices or client application.

| Property | Type | Description | Default |
| ---------- | -------- | -------------- | ------- |
| `signer.keyFile` | string | `File path to the signer private key in PEM format.` | `""` |
| `signer.certFile` | string | `File path to the signer certificate in PEM format.` | `""` |
| `signer.validFrom` | string | `The time from when the certificate is valid. (Format: https://github.com/karrick/tparse)` | `"now-1h"` |
| `signer.expiresIn` | string | `The time up to which the certificate is valid.` | `"87600h"` |
| `signer.hubID` | string | `Hub ID which is stored in coap-gw certificate and it cannot be used in the common name in the CSR.` | `""` |
| `signer.keyFile` | string | File path to the signer private key in PEM format. | `""` |
| `signer.certFile` | string | File path to the signer certificate in PEM format. | `""` |
| `signer.validFrom` | string | The time from when the certificate is valid. (Format: https://github.com/karrick/tparse) | `"now-1h"` |
| `signer.expiresIn` | string | The time up to which the certificate is valid. | `"87600h"` |
| `signer.hubID` | string | Hub ID which is stored in coap-gw certificate and it cannot be used in the common name in the CSR. | `""` |

{{< note >}}

Expand Down
Loading

0 comments on commit d8568f3

Please sign in to comment.