Skip to content

Commit 5da6989

Browse files
authored
Change line terminators CRLF => LF (#315)
1 parent 597cfcd commit 5da6989

File tree

8 files changed

+553
-553
lines changed

8 files changed

+553
-553
lines changed

.gitignore

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
.settings
2-
.project
3-
.classpath
4-
node_modules
5-
*.css
6-
/onyxia-api/bin
7-
.idea
8-
*.iml
9-
.vscode
10-
onyxia-api/src/main/resources/application.properties.local
11-
onyxia-api/src/main/resources/regions.json.local
1+
.settings
2+
.project
3+
.classpath
4+
node_modules
5+
*.css
6+
/onyxia-api/bin
7+
.idea
8+
*.iml
9+
.vscode
10+
onyxia-api/src/main/resources/application.properties.local
11+
onyxia-api/src/main/resources/regions.json.local
1212
target

README.md

Lines changed: 108 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,109 @@
1-
# Onyxia API
2-
3-
This is the server part of the Onyxia datalab, it interacts with your container orchestrator (Kubernetes) to deploy users services.
4-
Deployable services are listed and configured inside catalogs.
5-
Default catalogs are from InseeFrlab : [Interactive services](https://inseefrlab.github.io/helm-charts-interactive-services), [Databases](https://inseefrlab.github.io/helm-charts-databases), [Automation](https://inseefrlab.github.io/helm-charts-automation) but more catalogs (including your own) can be added.
6-
7-
## Quick start
8-
9-
Onyxia-api is usually run as a component within the Onyxia stack. See [Onyxia helm chart](https://github.com/InseeFrLab/onyxia/tree/main/helm-chart) and [docs.onyxia.sh](https://docs.onyxia.sh/) for installation instruction.
10-
11-
## Running Onyxia-API standalone
12-
13-
### Using docker
14-
15-
```
16-
docker run -p 8080:8080 inseefrlab/onyxia-api
17-
```
18-
19-
### Using Java / maven (from sources)
20-
21-
```
22-
git clone https://github.com/InseeFrLab/onyxia-api.git
23-
cd onyxia-api
24-
mvn spring-boot:run
25-
```
26-
27-
## Usage
28-
29-
Once Onyxia is started, browse to http://localhost:8080 to get started with the OpenAPI documentation.
30-
31-
## Contributing
32-
33-
Contributions are welcome.
34-
Make sure to conform to Android Open Source Project code style : `mvn spotless:apply` can enforce it.
35-
36-
## Configuration
37-
38-
Main configuration file is [onyxia-api/src/main/resources/application.properties](onyxia-api/src/main/resources/application.properties).
39-
Each variable can be overridden using environment variables.
40-
41-
### Regions configuration :
42-
| Key | Default | Description |
43-
| --------------------- | ------- | ------------------------------------------------------------------ |
44-
| `regions` | [onyxia-api/src/main/resources/regions.json](onyxia-api/src/main/resources/regions.json) | List of regions, see [Region configuration](docs/region-configuration.md) |
45-
46-
### Authentication configuration
47-
| Key | Default | Description |
48-
| --------------------- | ------- | ------------------------------------------------------------------ |
49-
| `authentication.mode` | `none` | Supported modes are : `none`, `openidconnect` (must be configured) |
50-
51-
### Open id configuration (used when `authentication.mode`=`openidconnect`)
52-
You have to specify `oidc.issuer-uri`. `oidc.jwk-uri` is optional.
53-
Common used configurations :
54-
| Provider | `oidc.issuer-uri` | `oidc.jwk-uri` |
55-
|---|---|---|
56-
| Keycloak | `https://keycloak.example.com/auth/realms/REALMNAME` | |
57-
| Google | https://accounts.google.com | `https://www.googleapis.com/oauth2/v3/certs` |
58-
| Microsoft | `https://login.microsoftonline.com/TENANTID/v2.0` | |
59-
60-
Configurable properties :
61-
| Key | Default | Description |
62-
| -------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
63-
| `oidc.issuer-uri` | | Issuer URI, should be the same as the `iss` field of the tokens |
64-
| `oidc.jwk-uri` | | JWK URI, useful when auto discovery is not available or when `iss` is not consistent across tokens (e.g [Google](https://stackoverflow.com/questions/38618826/can-i-get-a-consistent-iss-value-for-a-google-openidconnect-id-token)) |
65-
| `oidc.clientID` | | Client id to be used by Onyxia web application |
66-
| `oidc.audience` | | Optional : audience to validate. Must be the same as the token's `aud` field |
67-
| `oidc.username-claim` | `preferred_username` | Claim to be used as user id. Must conform to [RFC 1123](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names) |
68-
| `oidc.groups-claim` | `groups` | Claim to be used as list of user groups. |
69-
70-
### Security configuration :
71-
| Key | Default | Description |
72-
| --------------------- | ------- | ------------------------------------------------------------------ |
73-
| `security.cors.allowed_origins` | | To indicate which origins are allowed by [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) |
74-
75-
### Catalogs configuration :
76-
77-
| Key | Default | Description |
78-
| --------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
79-
| `catalogs` | see [onyxia-api/src/main/resources/catalogs.json](onyxia-api/src/main/resources/catalogs.json) | List of catalogs. Each catalog can be of type `universe` or `helm`. Mixing is supported. If there is no region of corresponding type then the catalog will be ignored |
80-
| `catalogs.refresh.ms` | `300000` (5 minutes) | The rate at which the catalogs should be refreshed. `<= 0` means no refreshs after initial loading |
81-
82-
### HTTP configuration
83-
| Key | Default | Description |
84-
| --------------------- | ------- | ------------------------------------------------------------------ |
85-
| `http.proxyHost` | | Proxy hostname (e.g : proxy.example.com) |
86-
| `http.proxyPort` | 80 for `HTTP`, 443 for `HTTPS` | Proxy port |
87-
| `http.noProxy` | | Hosts that should not use the proxy (e.g : `localhost,host.example.com`) |
88-
| `http.proxyUsername` | | Username if the proxy requires authentication |
89-
| `http.proxyPassword` | | Password if the proxy requires authentication |
90-
91-
### Other configurations
92-
| Key | Default | Description |
93-
| --------------------- | ------- | ------------------------------------------------------------------ |
94-
| `springdoc.swagger-ui.path` | `/` | Open API (swagger) UI path |
95-
| `springdoc.swagger-ui.oauth.clientId` | `` | clientid used by swagger to authenticate the user, in general the same which is used by onyxia-ui is ok. |
96-
97-
## Onyxia API dependency to Helm
98-
99-
Onyxia-API makes system calls to `helm` using the [helm-wrapper](helm-wrapper) Java library.
100-
`helm` is bundled in the `Onyxia API` Docker image, see current version bundled here : [Dockerfile](onyxia-api/Dockerfile).
101-
If running `Onyxia API` locally you need to have `helm` available in the `PATH`.
102-
103-
## Onyxia Helm format extension
104-
105-
Onyxia's catalogs are based on the Helm chart format and especially the `values.schema.json` (see https://helm.sh/docs/topics/charts/#schema-files) file used to populate the personalization tabs displayed by the UI.
106-
Onyxia is **fully interoperable** with the Helm chart format which means you can use any helm chart repository as a onyxia catalog. But you probably want to use one that includes `values.schema.json` files (those files are optional in helm).
107-
Onyxia extends this format to enhance it and provide more customization tools in the UI.
108-
1+
# Onyxia API
2+
3+
This is the server part of the Onyxia datalab, it interacts with your container orchestrator (Kubernetes) to deploy users services.
4+
Deployable services are listed and configured inside catalogs.
5+
Default catalogs are from InseeFrlab : [Interactive services](https://inseefrlab.github.io/helm-charts-interactive-services), [Databases](https://inseefrlab.github.io/helm-charts-databases), [Automation](https://inseefrlab.github.io/helm-charts-automation) but more catalogs (including your own) can be added.
6+
7+
## Quick start
8+
9+
Onyxia-api is usually run as a component within the Onyxia stack. See [Onyxia helm chart](https://github.com/InseeFrLab/onyxia/tree/main/helm-chart) and [docs.onyxia.sh](https://docs.onyxia.sh/) for installation instruction.
10+
11+
## Running Onyxia-API standalone
12+
13+
### Using docker
14+
15+
```
16+
docker run -p 8080:8080 inseefrlab/onyxia-api
17+
```
18+
19+
### Using Java / maven (from sources)
20+
21+
```
22+
git clone https://github.com/InseeFrLab/onyxia-api.git
23+
cd onyxia-api
24+
mvn spring-boot:run
25+
```
26+
27+
## Usage
28+
29+
Once Onyxia is started, browse to http://localhost:8080 to get started with the OpenAPI documentation.
30+
31+
## Contributing
32+
33+
Contributions are welcome.
34+
Make sure to conform to Android Open Source Project code style : `mvn spotless:apply` can enforce it.
35+
36+
## Configuration
37+
38+
Main configuration file is [onyxia-api/src/main/resources/application.properties](onyxia-api/src/main/resources/application.properties).
39+
Each variable can be overridden using environment variables.
40+
41+
### Regions configuration :
42+
| Key | Default | Description |
43+
| --------------------- | ------- | ------------------------------------------------------------------ |
44+
| `regions` | [onyxia-api/src/main/resources/regions.json](onyxia-api/src/main/resources/regions.json) | List of regions, see [Region configuration](docs/region-configuration.md) |
45+
46+
### Authentication configuration
47+
| Key | Default | Description |
48+
| --------------------- | ------- | ------------------------------------------------------------------ |
49+
| `authentication.mode` | `none` | Supported modes are : `none`, `openidconnect` (must be configured) |
50+
51+
### Open id configuration (used when `authentication.mode`=`openidconnect`)
52+
You have to specify `oidc.issuer-uri`. `oidc.jwk-uri` is optional.
53+
Common used configurations :
54+
| Provider | `oidc.issuer-uri` | `oidc.jwk-uri` |
55+
|---|---|---|
56+
| Keycloak | `https://keycloak.example.com/auth/realms/REALMNAME` | |
57+
| Google | https://accounts.google.com | `https://www.googleapis.com/oauth2/v3/certs` |
58+
| Microsoft | `https://login.microsoftonline.com/TENANTID/v2.0` | |
59+
60+
Configurable properties :
61+
| Key | Default | Description |
62+
| -------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
63+
| `oidc.issuer-uri` | | Issuer URI, should be the same as the `iss` field of the tokens |
64+
| `oidc.jwk-uri` | | JWK URI, useful when auto discovery is not available or when `iss` is not consistent across tokens (e.g [Google](https://stackoverflow.com/questions/38618826/can-i-get-a-consistent-iss-value-for-a-google-openidconnect-id-token)) |
65+
| `oidc.clientID` | | Client id to be used by Onyxia web application |
66+
| `oidc.audience` | | Optional : audience to validate. Must be the same as the token's `aud` field |
67+
| `oidc.username-claim` | `preferred_username` | Claim to be used as user id. Must conform to [RFC 1123](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names) |
68+
| `oidc.groups-claim` | `groups` | Claim to be used as list of user groups. |
69+
70+
### Security configuration :
71+
| Key | Default | Description |
72+
| --------------------- | ------- | ------------------------------------------------------------------ |
73+
| `security.cors.allowed_origins` | | To indicate which origins are allowed by [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) |
74+
75+
### Catalogs configuration :
76+
77+
| Key | Default | Description |
78+
| --------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
79+
| `catalogs` | see [onyxia-api/src/main/resources/catalogs.json](onyxia-api/src/main/resources/catalogs.json) | List of catalogs. Each catalog can be of type `universe` or `helm`. Mixing is supported. If there is no region of corresponding type then the catalog will be ignored |
80+
| `catalogs.refresh.ms` | `300000` (5 minutes) | The rate at which the catalogs should be refreshed. `<= 0` means no refreshs after initial loading |
81+
82+
### HTTP configuration
83+
| Key | Default | Description |
84+
| --------------------- | ------- | ------------------------------------------------------------------ |
85+
| `http.proxyHost` | | Proxy hostname (e.g : proxy.example.com) |
86+
| `http.proxyPort` | 80 for `HTTP`, 443 for `HTTPS` | Proxy port |
87+
| `http.noProxy` | | Hosts that should not use the proxy (e.g : `localhost,host.example.com`) |
88+
| `http.proxyUsername` | | Username if the proxy requires authentication |
89+
| `http.proxyPassword` | | Password if the proxy requires authentication |
90+
91+
### Other configurations
92+
| Key | Default | Description |
93+
| --------------------- | ------- | ------------------------------------------------------------------ |
94+
| `springdoc.swagger-ui.path` | `/` | Open API (swagger) UI path |
95+
| `springdoc.swagger-ui.oauth.clientId` | `` | clientid used by swagger to authenticate the user, in general the same which is used by onyxia-ui is ok. |
96+
97+
## Onyxia API dependency to Helm
98+
99+
Onyxia-API makes system calls to `helm` using the [helm-wrapper](helm-wrapper) Java library.
100+
`helm` is bundled in the `Onyxia API` Docker image, see current version bundled here : [Dockerfile](onyxia-api/Dockerfile).
101+
If running `Onyxia API` locally you need to have `helm` available in the `PATH`.
102+
103+
## Onyxia Helm format extension
104+
105+
Onyxia's catalogs are based on the Helm chart format and especially the `values.schema.json` (see https://helm.sh/docs/topics/charts/#schema-files) file used to populate the personalization tabs displayed by the UI.
106+
Onyxia is **fully interoperable** with the Helm chart format which means you can use any helm chart repository as a onyxia catalog. But you probably want to use one that includes `values.schema.json` files (those files are optional in helm).
107+
Onyxia extends this format to enhance it and provide more customization tools in the UI.
108+
109109
An example of such extension can be found [here](https://github.com/InseeFrLab/helm-charts-interactive-services/blob/main/charts/jupyter-python/values.schema.json#L190), see `x-onyxia`.

onyxia-api/.gitignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/target/
2-
src/main/resources/application-default.properties
3-
src/main/resources/*-default.json
1+
/target/
2+
src/main/resources/application-default.properties
3+
src/main/resources/*-default.json
44
.factorypath

0 commit comments

Comments
 (0)