You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: airborne_docs/docs/server/configuration.md
+9-6Lines changed: 9 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -113,20 +113,23 @@ Authorization uses Casbin, with policies persisted in Postgres. These variables
113
113
114
114
Airborne uses Superposition as its configuration/feature-flag engine for dimensions and release targeting. The base URL and org id are required; the token variables are only needed when Superposition is run in authenticated mode.
115
115
116
+
Airborne talks to Superposition through two independent paths, which may point at two different deployments. Control-plane writes (dimensions, releases, experiments) go through the Superposition SDK client at `SUPERPOSITION_URL` and authenticate with a cookie built from `SUPERPOSITION_USER_TOKEN` and `SUPERPOSITION_ORG_TOKEN`. Release-config serving (`/release`) resolves live against `SUPERPOSITION_RC_URL` through the provider registry, which authenticates with the `SUPERPOSITION_TOKEN` bearer token.
|`SUPERPOSITION_URL`|**Yes**|`http://localhost:8080`| Base URL of the Superposition service. |
120
+
|`SUPERPOSITION_URL`|**Yes**|`http://localhost:8080`| Base URL of the Superposition service used for control-plane calls (dimensions, releases, experiments). |
121
+
|`SUPERPOSITION_RC_URL`| No |_(falls back to `SUPERPOSITION_URL`)_| Base URL of the Superposition service that release-config serving (`/release`) resolves against. Set this to point RC serving at a separate Superposition deployment. |
119
122
|`SUPERPOSITION_ORG_ID`|**Yes**|`get-org-id-from-superposition`| Superposition organisation id. Populated by `init-superposition.sh` in dev. |
120
-
|`ENABLE_AUTHENTICATED_SUPERPOSITION`| No |`false`| When `true`, the Superposition SDK client sends auth tokens/cookies; this makes the three token variables below mandatory. |
121
-
|`SUPERPOSITION_TOKEN`| Conditional (secret) |_(unset)_| Bearer token for Superposition. Used as the SDK bearer token (empty string if unset). |
122
-
|`SUPERPOSITION_USER_TOKEN`| Conditional (secret) |_(unset)_| User cookie token. **Required when `ENABLE_AUTHENTICATED_SUPERPOSITION=true`** (panics if missing in that mode). |
123
-
|`SUPERPOSITION_ORG_TOKEN`| Conditional (secret) |_(unset)_| Org cookie token. **Required when `ENABLE_AUTHENTICATED_SUPERPOSITION=true`** (panics if missing in that mode). |
123
+
|`ENABLE_AUTHENTICATED_SUPERPOSITION`| No |`false`| When `true`, Superposition calls are authenticated; this makes the three token variables below mandatory. |
124
+
|`SUPERPOSITION_TOKEN`| Conditional (secret) |_(unset)_| Bearer token used by the release-config provider registry against `SUPERPOSITION_RC_URL`. **Required when `ENABLE_AUTHENTICATED_SUPERPOSITION=true`** (panics if missing in that mode). |
125
+
|`SUPERPOSITION_USER_TOKEN`| Conditional (secret) |_(unset)_| User cookie token for the SDK client against `SUPERPOSITION_URL`. **Required when `ENABLE_AUTHENTICATED_SUPERPOSITION=true`** (panics if missing in that mode). |
126
+
|`SUPERPOSITION_ORG_TOKEN`| Conditional (secret) |_(unset)_| Org cookie token for the SDK client against `SUPERPOSITION_URL`. **Required when `ENABLE_AUTHENTICATED_SUPERPOSITION=true`** (panics if missing in that mode). |
124
127
|`SUPERPOSITION_CLEAR_UNUSED_PROVIDERS`| No |`false`| When `true`, a background task evicts idle per-workspace Superposition providers (see below). When `false`, providers live for the process lifetime. |
125
128
|`SUPERPOSITION_UNUSED_PROVIDER_TTL`| No |`43200`| Idle time, in seconds, after which an unused workspace provider is evicted. Only applied when eviction is enabled. Default is 12 hours. |
126
129
|`SUPERPOSITION_UNUSED_PROVIDER_CHECK_INTERVAL`| No |`1500`| How often, in seconds, the eviction sweep runs. Only applied when eviction is enabled. Default is 25 minutes. |
127
130
|`SUPERPOSITION_MIGRATION_STRATEGY`| No |`PATCH`| Strategy used when reconciling Superposition default configs during the `superposition` boot migration. |
128
131
129
-
Airborne serves release config by resolving each workspace's (organisation + application) configuration live against the Superposition API. To avoid re-creating the SDK client on every request, the server caches one provider per workspace in an in-memory registry. Enabling `SUPERPOSITION_CLEAR_UNUSED_PROVIDERS` starts a background sweep that drops providers that have not been accessed within `SUPERPOSITION_UNUSED_PROVIDER_TTL`, checked every `SUPERPOSITION_UNUSED_PROVIDER_CHECK_INTERVAL`. This bounds memory on servers hosting many rarely-served workspaces.
132
+
Airborne serves release config by resolving each workspace's (organisation + application) configuration live against the Superposition API at `SUPERPOSITION_RC_URL`. To avoid re-creating the SDK client on every request, the server caches one provider per workspace in an in-memory registry. Enabling `SUPERPOSITION_CLEAR_UNUSED_PROVIDERS` starts a background sweep that drops providers that have not been accessed within `SUPERPOSITION_UNUSED_PROVIDER_TTL`, checked every `SUPERPOSITION_UNUSED_PROVIDER_CHECK_INTERVAL`. This bounds memory on servers hosting many rarely-served workspaces.
130
133
131
134
:::warning[Use the plural env-var name]
132
135
The server reads `SUPERPOSITION_CLEAR_UNUSED_PROVIDERS` (**plural**). The bundled `.env.example` currently writes it as `SUPERPOSITION_CLEAR_UNUSED_PROVIDER` (singular), which the server **ignores** — so a value set on the singular key has no effect. Always set the plural name.
Copy file name to clipboardExpand all lines: airborne_server/README.md
+5-6Lines changed: 5 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -321,12 +321,11 @@ The server relies on a set of environment variables for its configuration. These
321
321
-`AUTH_ADMIN_SCOPES`: Optional space-separated scopes (commonly used for Okta/Auth0).
322
322
-`AUTH_ADMIN_ISSUER`: Issuer URL used to derive Keycloak admin realm/base URL (`.../realms/<realm>`). Required for Keycloak signup/import flows.
323
323
-`SUPERPOSITION_URL`: URL of the Superposition service.
324
-
-`SUPERPOSITION_RC_URL`: URL of the Superposition service used by RC (`/release`) endpoints. Defaults to `SUPERPOSITION_URL` when unset.
325
-
-`ENABLE_AUTHENTICATED_SUPERPOSITION`: Enables cookie-based auth for Superposition SDK requests.
326
-
-`SUPERPOSITION_USER_TOKEN`: User token for Superposition auth cookie (`user=...`).
327
-
-`SUPERPOSITION_ORG_TOKEN`: Org token for Superposition auth cookie (`org_<SUPERPOSITION_ORG_ID>=...`).
328
-
-`SUPERPOSITION_RC_USER_TOKEN`: RC-specific user token for auth cookie; defaults to `SUPERPOSITION_USER_TOKEN` when unset.
329
-
-`SUPERPOSITION_RC_ORG_TOKEN`: RC-specific org token for auth cookie; defaults to `SUPERPOSITION_ORG_TOKEN` when unset.
324
+
-`SUPERPOSITION_RC_URL`: URL of the Superposition service that release-config (`/release`) serving resolves against. Defaults to `SUPERPOSITION_URL` when unset.
325
+
-`ENABLE_AUTHENTICATED_SUPERPOSITION`: Enables authenticated Superposition calls (cookie auth for the SDK client, bearer auth for the release-config provider).
326
+
-`SUPERPOSITION_USER_TOKEN`: User token for Superposition auth cookie (`user=...`), used by the SDK client against `SUPERPOSITION_URL`.
327
+
-`SUPERPOSITION_ORG_TOKEN`: Org token for Superposition auth cookie (`org_<SUPERPOSITION_ORG_ID>=...`), used by the SDK client against `SUPERPOSITION_URL`.
328
+
-`SUPERPOSITION_TOKEN`: Bearer token used by the release-config provider registry against `SUPERPOSITION_RC_URL`.
330
329
-`SUPERPOSITION_ORG_ID`: The organization ID within Superposition used by the server.
331
330
-`AWS_BUCKET`: Name of the S3 bucket for storing package assets.
332
331
-`PUBLIC_ENDPOINT`: The public-facing URL for accessing assets stored in S3.
0 commit comments