okengine 0.10.2 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +76 -10
- package/site/content/docs/ai/mcp.mdx +0 -1
- package/site/content/docs/deployment/docker-swarm.mdx +48 -111
- package/site/content/docs/deployment/docker.mdx +43 -36
- package/site/content/docs/deployment/index.mdx +9 -9
- package/site/content/docs/deployment/kubernetes.mdx +4 -4
- package/site/content/docs/elements/ai.mdx +7 -13
- package/site/content/docs/elements/channel.mdx +9 -13
- package/site/content/docs/elements/clock.mdx +8 -14
- package/site/content/docs/elements/flow.mdx +46 -54
- package/site/content/docs/elements/gate.mdx +6 -11
- package/site/content/docs/elements/signal.mdx +2 -8
- package/site/content/docs/elements/store.mdx +79 -93
- package/site/content/docs/elements/vault.mdx +89 -76
- package/site/content/docs/get-started/basic-usage.mdx +8 -14
- package/site/content/docs/get-started/installation.mdx +36 -36
- package/site/content/docs/get-started/introduction.mdx +11 -0
- package/site/content/docs/get-started/why.mdx +3 -4
- package/site/content/docs/index.mdx +0 -1
- package/site/content/docs/meta.json +0 -1
- package/site/content/docs/plugins/anonymous.mdx +1 -1
- package/site/content/docs/plugins/magic-link.mdx +11 -11
- package/site/content/docs/plugins/otp.mdx +2 -2
- package/site/content/docs/plugins/passkey.mdx +1 -1
- package/site/content/docs/plugins/two-factor.mdx +1 -1
- package/site/content/docs/plugins/username.mdx +1 -1
- package/site/content/docs/recipes/caddy.mdx +1 -1
- package/site/content/docs/recipes/cockroachdb.mdx +2 -2
- package/site/content/docs/recipes/dragonfly.mdx +1 -1
- package/site/content/docs/recipes/index.mdx +1 -2
- package/site/content/docs/recipes/llama-cpp.mdx +21 -23
- package/site/content/docs/recipes/mailpit.mdx +11 -11
- package/site/content/docs/recipes/meilisearch.mdx +10 -10
- package/site/content/docs/recipes/meta.json +0 -1
- package/site/content/docs/recipes/ollama.mdx +1 -1
- package/site/content/docs/recipes/pgdog.mdx +12 -9
- package/site/content/docs/recipes/postgres.mdx +3 -3
- package/site/content/docs/recipes/redis.mdx +2 -2
- package/site/content/docs/recipes/rustfs.mdx +10 -7
- package/site/content/docs/recipes/sglang.mdx +1 -1
- package/site/content/docs/recipes/supabase-docker.mdx +1 -1
- package/site/content/docs/recipes/timescale.mdx +2 -2
- package/site/content/docs/recipes/valkey.mdx +1 -1
- package/site/content/docs/recipes/vllm.mdx +1 -1
- package/site/content/docs/recipes/yugabytedb.mdx +2 -2
- package/site/content/docs/reference/cli.md +61 -38
- package/site/content/docs/reference/configuration.mdx +145 -70
- package/site/content/docs/reference/environment-variables.mdx +36 -28
- package/site/content/docs/reference/errors.mdx +28 -29
- package/site/content/docs/reference/fx.mdx +14 -7
- package/site/content/docs/reference/i18n.mdx +17 -6
- package/site/content/docs/reference/index.mdx +5 -0
- package/site/content/docs/reference/meta.json +1 -0
- package/site/content/docs/reference/migrating-environments.mdx +158 -0
- package/site/content/docs/reference/plugins.mdx +2 -2
- package/src/auth/gate-auth.test.ts +12 -10
- package/src/cli/ai-setup/ai-setup.test.ts +30 -16
- package/src/cli/ai-setup/apply.ts +111 -15
- package/src/cli/ai-setup/catalog.ts +3 -3
- package/src/cli/ai-setup/index.ts +1 -1
- package/src/cli/ai-setup/prompts.ts +1 -1
- package/src/cli/ai-setup/recommend.test.ts +1 -1
- package/src/cli/ask-seed.test.ts +3 -3
- package/src/cli/build.ts +8 -9
- package/src/cli/db-auto-push.test.ts +6 -3
- package/src/cli/db-auto-push.ts +7 -5
- package/src/cli/db-seed.ts +7 -8
- package/src/cli/db.test.ts +70 -71
- package/src/cli/db.ts +86 -12
- package/src/cli/dev-controller.test.ts +35 -0
- package/src/cli/dev-controller.ts +298 -0
- package/src/cli/dev-controls.ts +11 -65
- package/src/cli/dev-db-push.test.ts +47 -15
- package/src/cli/dev-schema-sync.test.ts +11 -11
- package/src/cli/dev-schema-sync.ts +10 -10
- package/src/cli/dev-session-lock.test.ts +106 -0
- package/src/cli/dev-session-lock.ts +209 -0
- package/src/cli/dev.test.ts +246 -114
- package/src/cli/dev.ts +153 -205
- package/src/cli/doc-staleness.test.ts +3 -6
- package/src/cli/docker-clean.test.ts +33 -1
- package/src/cli/docker-clean.ts +28 -33
- package/src/cli/docker-cli.test.ts +12 -11
- package/src/cli/docker.ts +95 -20
- package/src/cli/doctor.test.ts +40 -0
- package/src/cli/doctor.ts +142 -9
- package/src/cli/drizzle-env.test.ts +11 -13
- package/src/cli/drizzle-env.ts +18 -11
- package/src/cli/ensure-drizzle-config.ts +11 -14
- package/src/cli/hero-meta.test.ts +15 -15
- package/src/cli/hero-meta.ts +10 -9
- package/src/cli/index.ts +36 -6
- package/src/cli/load-config.images.test.ts +44 -10
- package/src/cli/load-config.source.test.ts +50 -0
- package/src/cli/load-config.ts +35 -29
- package/src/cli/meilisearch-local.ts +1 -2
- package/src/cli/mode.ts +7 -58
- package/src/cli/registry.ts +175 -19
- package/src/cli/resolve-dev-sql-env.test.ts +8 -16
- package/src/cli/resolve-dev-sql-env.ts +13 -15
- package/src/cli/safe-defaults.test.ts +29 -11
- package/src/cli/schema.ts +65 -16
- package/src/cli/test.ts +58 -0
- package/src/cli/tui/App.tsx +252 -0
- package/src/cli/tui/DevLive.tsx +116 -0
- package/src/cli/tui/components/ConfirmDialog.tsx +48 -0
- package/src/cli/tui/components/HeaderBar.tsx +67 -0
- package/src/cli/tui/components/LogStream.tsx +47 -0
- package/src/cli/tui/components/PanelCard.tsx +39 -0
- package/src/cli/tui/components/SelectRow.tsx +37 -0
- package/src/cli/tui/components/SlashPalette.tsx +172 -0
- package/src/cli/tui/components/Spinner.tsx +32 -0
- package/src/cli/tui/components/StatusBar.tsx +51 -0
- package/src/cli/tui/components/StatusDot.tsx +37 -0
- package/src/cli/tui/components/TabBar.tsx +49 -0
- package/src/cli/tui/components/Wordmark.tsx +43 -0
- package/src/cli/tui/format.ts +38 -0
- package/src/cli/tui/keys.test.ts +18 -0
- package/src/cli/tui/keys.ts +26 -0
- package/src/cli/tui/launch.test.ts +18 -0
- package/src/cli/tui/launch.ts +57 -0
- package/src/cli/tui/panels/Dashboard.tsx +201 -0
- package/src/cli/tui/panels/Database.tsx +198 -0
- package/src/cli/tui/panels/Dev.tsx +257 -0
- package/src/cli/tui/panels/Docker.tsx +357 -0
- package/src/cli/tui/panels/Navigator.test.ts +22 -0
- package/src/cli/tui/panels/Navigator.tsx +213 -0
- package/src/cli/tui/slash-catalog.test.ts +31 -0
- package/src/cli/tui/slash-catalog.ts +184 -0
- package/src/cli/tui/slash-run.ts +54 -0
- package/src/cli/tui/state/ports.ts +95 -0
- package/src/cli/tui/theme.ts +24 -0
- package/src/cli/vault-cmd.test.ts +402 -0
- package/src/cli/vault-cmd.ts +727 -69
- package/src/cli/vault-secure-input.test.ts +56 -0
- package/src/cli/vault-secure-input.ts +124 -0
- package/src/compiler/effects-infer.ts +7 -0
- package/src/compiler/extract.ts +12 -0
- package/src/compiler/fixtures/skyport/oke.config.ts +7 -5
- package/src/compiler/fixtures/skyport/src/flows/payments/index.ts +1 -1
- package/src/compiler/fixtures/skyport.expected.json +1 -1
- package/src/compiler/generate-adopt.ts +27 -1
- package/src/compiler-entry.ts +7 -0
- package/src/config/define-config.test.ts +111 -47
- package/src/config/driver-defaults.test.ts +115 -0
- package/src/config/driver-defaults.ts +156 -0
- package/src/config/index.ts +246 -131
- package/src/config/resolve-driver.test.ts +14 -19
- package/src/console/server/app.ts +4 -2
- package/src/console/server/console.test.ts +58 -1
- package/src/console/server/flows.ts +22 -2
- package/src/console/server/index.ts +3 -0
- package/src/console/server/operator-db.test.ts +55 -13
- package/src/console/server/operator-db.ts +305 -263
- package/src/console/server/serve.ts +16 -7
- package/src/console/server/state.ts +31 -9
- package/src/console/server/vault.test.ts +120 -5
- package/src/console/server/vault.ts +208 -12
- package/src/console/ui/dist/assets/{index-D-9KFce5.js → index--Y0Uaz-m.js} +2 -2
- package/src/console/ui/dist/assets/panel-vault-BkZdJPX8.js +1 -0
- package/src/console/ui/dist/assets/style-C3L349iZ.css +3 -0
- package/src/console/ui/dist/index.html +2 -2
- package/src/console/ui/shell/client.ts +16 -0
- package/src/console/ui/shell/panels/vault/VaultPanel.tsx +54 -1
- package/src/console/ui/vault/VaultA11yView.tsx +33 -1
- package/src/console/ui/vault/backend.test.ts +75 -0
- package/src/console/ui/vault/backend.ts +117 -0
- package/src/console/ui/vault/fixture.ts +21 -2
- package/src/console/ui/vault/index.ts +11 -1
- package/src/console/ui/vault/types.ts +26 -0
- package/src/docker/compose.ts +164 -61
- package/src/docker/derive.ts +106 -12
- package/src/docker/docker.test.ts +156 -110
- package/src/docker/helpers.ts +98 -0
- package/src/docker/images-config.test.ts +163 -0
- package/src/docker/index.ts +30 -5
- package/src/docker/recipes/index.ts +0 -3
- package/src/docker/recipes/llama-cpp.ts +4 -4
- package/src/docker/recipes/pgdog.ts +9 -2
- package/src/docker/resources.test.ts +71 -0
- package/src/docker/resources.ts +176 -0
- package/src/docker/stack-id.test.ts +11 -4
- package/src/docker/stack-id.ts +42 -32
- package/src/docker/stack.integration.test.ts +4 -15
- package/src/docker/types.ts +35 -3
- package/src/drivers/ai-ollama.integration.test.ts +2 -2
- package/src/drivers/conformance.test.ts +11 -12
- package/src/drivers/drizzle-dialect.test.ts +0 -4
- package/src/drivers/drizzle-dialect.ts +7 -13
- package/src/drivers/index.ts +24 -7
- package/src/drivers/journal-postgres.test.ts +3 -1
- package/src/drivers/journal-postgres.ts +4 -2
- package/src/drivers/meilisearch.ts +1 -1
- package/src/drivers/pglite.ts +28 -5
- package/src/drivers/types.ts +9 -11
- package/src/drivers/vault-aws-secrets-manager.test.ts +159 -0
- package/src/drivers/vault-aws-secrets-manager.ts +333 -0
- package/src/drivers/vault-builtin.test.ts +110 -0
- package/src/drivers/vault-builtin.ts +184 -0
- package/src/drivers/vault-driver-removal.test.ts +13 -0
- package/src/drivers/vault-managed.test.ts +95 -0
- package/src/drivers/vault-managed.ts +101 -25
- package/src/drivers/vault-types.ts +25 -5
- package/src/elements/ai/runtime.ts +1 -1
- package/src/elements/clock/chaos.test.ts +4 -1
- package/src/elements/clock/durable.ts +57 -4
- package/src/elements/clock.test.ts +13 -14
- package/src/elements/gate/constants.ts +18 -0
- package/src/elements/gate.test.ts +1 -1
- package/src/elements/gate.ts +2 -2
- package/src/elements/store/domain-ddl.test.ts +5 -12
- package/src/elements/store/emit-drizzle.ts +44 -19
- package/src/elements/store/index-boot.test.ts +15 -116
- package/src/elements/store/load-plugin-tables.ts +1 -1
- package/src/elements/store/resource-list-docs.fixture.ts +12 -6
- package/src/elements/store/resource-list-docs.test.ts +64 -44
- package/src/elements/store/resource.test.ts +17 -10
- package/src/elements/store/runtime.ts +9 -12
- package/src/elements/store/schema-decl.test.ts +16 -32
- package/src/elements/store/seed.test.ts +1 -2
- package/src/elements/store/seed.ts +7 -8
- package/src/elements/store/sql-condition.test.ts +2 -2
- package/src/elements/store/sql-session.test.ts +8 -10
- package/src/elements/store/sql-session.ts +10 -2
- package/src/elements/store.test.ts +13 -13
- package/src/elements/vault/audit.ts +233 -0
- package/src/elements/vault/boot-chain.test.ts +78 -0
- package/src/elements/vault/boot-chain.ts +43 -39
- package/src/elements/vault/builtin-adapter.test.ts +479 -0
- package/src/elements/vault/builtin-adapter.ts +1184 -0
- package/src/elements/vault/crypto.test.ts +237 -0
- package/src/elements/vault/crypto.ts +431 -0
- package/src/elements/vault/declare.ts +164 -3
- package/src/elements/vault/errors.ts +56 -0
- package/src/elements/vault/kms-unseal.test.ts +76 -0
- package/src/elements/vault/kms-unseal.ts +181 -0
- package/src/elements/vault/path.ts +90 -0
- package/src/elements/vault/resilience.test.ts +102 -0
- package/src/elements/vault/resilience.ts +107 -0
- package/src/elements/vault/runtime.ts +36 -4
- package/src/elements/vault/security-checklist.test.ts +130 -0
- package/src/elements/vault/storage.ts +448 -0
- package/src/elements/vault/types.ts +288 -0
- package/src/elements/vault/unseal.ts +150 -0
- package/src/elements/vault.test.ts +72 -4
- package/src/elements/vault.ts +91 -2
- package/src/full.ts +248 -0
- package/src/http.ts +41 -0
- package/src/i18n/interpolate-simple.ts +37 -0
- package/src/i18n/messages.ts +51 -4
- package/src/i18n-entry.ts +7 -0
- package/src/index.ts +35 -145
- package/src/journal-entry.ts +20 -0
- package/src/kernel/adopt-barrel-fresh.test.ts +25 -10
- package/src/kernel/app.ts +40 -42
- package/src/kernel/auto-registry.test.ts +2 -2
- package/src/kernel/boot-bind/ai.test.ts +5 -5
- package/src/kernel/boot-bind/ai.ts +2 -1
- package/src/kernel/boot-bind/channel.test.ts +6 -6
- package/src/kernel/boot-bind/channel.ts +5 -4
- package/src/kernel/boot-bind/clock.ts +5 -5
- package/src/kernel/boot-bind/gate.ts +6 -7
- package/src/kernel/boot-bind/honor-config.test.ts +42 -42
- package/src/kernel/boot-bind/journal.ts +5 -5
- package/src/kernel/boot-bind/signal.ts +3 -1
- package/src/kernel/boot-bind/store.test.ts +55 -37
- package/src/kernel/boot-bind/store.ts +24 -34
- package/src/kernel/boot-bind/vault.ts +19 -4
- package/src/kernel/boot.test.ts +12 -4
- package/src/kernel/boot.ts +31 -19
- package/src/kernel/budget-entry.ts +1 -1
- package/src/kernel/compensate.test.ts +288 -1
- package/src/kernel/compensate.ts +126 -0
- package/src/kernel/concurrency.test.ts +10 -9
- package/src/kernel/effects-stamping.test.ts +27 -2
- package/src/kernel/element-registries.ts +5 -3
- package/src/kernel/flow.ts +4 -2
- package/src/kernel/fx.test.ts +119 -3
- package/src/kernel/fx.ts +215 -40
- package/src/kernel/index.ts +14 -0
- package/src/kernel/journal.ts +130 -7
- package/src/kernel/pipeline.test.ts +20 -6
- package/src/kernel/redacted.test.ts +35 -0
- package/src/kernel/redacted.ts +24 -2
- package/src/kernel/router/create-default.ts +16 -0
- package/src/kernel/router/create-edge.ts +18 -0
- package/src/kernel/router/create.ts +23 -0
- package/src/kernel/router/index.ts +23 -0
- package/src/kernel/router/linear.ts +88 -0
- package/src/kernel/router/regexp.ts +188 -0
- package/src/kernel/router/smart.ts +120 -0
- package/src/kernel/router/trie.ts +108 -0
- package/src/kernel/router/types.ts +56 -0
- package/src/kernel/router.ts +18 -532
- package/src/kernel-entry.ts +43 -0
- package/src/manifest/fixtures/skyport.excerpt.json +1 -1
- package/src/manifest/fixtures/skyport.manifest.json +1 -1
- package/src/plugins/config-source.test.ts +7 -7
- package/src/release/build-lib.ts +58 -0
- package/src/release/exports.test.ts +4 -2
- package/src/release/exports.ts +30 -4
- package/src/release/measure.ts +101 -22
- package/src/runs/duckdb.ts +7 -2
- package/src/shared/optional-peer.ts +41 -0
- package/src/term.test.ts +3 -44
- package/src/test/create-test-app.ts +12 -0
- package/src/test/provisions.integration.test.ts +1 -1
- package/src/test/reset-element-registries.ts +2 -0
- package/src/upgrade/codemods.test.ts +7 -20
- package/src/upgrade/codemods.ts +93 -60
- package/site/content/docs/console/access.mdx +0 -29
- package/site/content/docs/console/ai.mdx +0 -35
- package/site/content/docs/console/architecture.mdx +0 -35
- package/site/content/docs/console/channels.mdx +0 -37
- package/site/content/docs/console/clock.mdx +0 -51
- package/site/content/docs/console/flows.mdx +0 -31
- package/site/content/docs/console/gates.mdx +0 -73
- package/site/content/docs/console/index.mdx +0 -54
- package/site/content/docs/console/manifest-diff.mdx +0 -34
- package/site/content/docs/console/meta.json +0 -24
- package/site/content/docs/console/overview.mdx +0 -40
- package/site/content/docs/console/plugins.mdx +0 -41
- package/site/content/docs/console/privacy.mdx +0 -32
- package/site/content/docs/console/runs.mdx +0 -50
- package/site/content/docs/console/signals.mdx +0 -40
- package/site/content/docs/console/store.mdx +0 -32
- package/site/content/docs/console/tenancy.mdx +0 -32
- package/site/content/docs/console/traces.mdx +0 -38
- package/site/content/docs/console/vault.mdx +0 -41
- package/site/content/docs/recipes/openbao.mdx +0 -141
- package/src/cli/ask-dev-mode.ts +0 -40
- package/src/cli/dev-mode.test.ts +0 -45
- package/src/cli/dev-mode.ts +0 -78
- package/src/cli/openbao-bootstrap.test.ts +0 -150
- package/src/cli/openbao-bootstrap.ts +0 -321
- package/src/cli/openbao-restart.integration.test.ts +0 -145
- package/src/console/ui/dist/assets/panel-vault-Za1GyJfM.js +0 -1
- package/src/console/ui/dist/assets/style-C8MxEWPd.css +0 -3
- package/src/docker/recipes/openbao.ts +0 -47
- package/src/drivers/libsql.ts +0 -179
- package/src/drivers/sqlite.ts +0 -44
- package/src/drivers/vault-openbao.test.ts +0 -97
- package/src/drivers/vault-openbao.ts +0 -143
|
@@ -43,7 +43,7 @@ Unset defaults to `localhost` — Caddy issues a **local** TLS cert instead of L
|
|
|
43
43
|
### Include the proxy layer
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
docker compose -f
|
|
46
|
+
docker compose -f docker-compose.yml up -d
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
Generated `Caddyfile`: `{$OKE_PROXY_HOST:localhost} { reverse_proxy app:6530 }`.
|
|
@@ -34,7 +34,7 @@ images: {
|
|
|
34
34
|
### Bring the stack up
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
oke dev
|
|
37
|
+
oke dev
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
`oke docker` injects `COCKROACH_USER` / `COCKROACH_PASSWORD` / `COCKROACH_DATABASE`
|
|
@@ -94,7 +94,7 @@ not multi-region HA. For managed multi-region, use the
|
|
|
94
94
|
<Accordions>
|
|
95
95
|
<Accordion title="oke boot: postgres driver needs DATABASE_URL">
|
|
96
96
|
|
|
97
|
-
Re-run `oke dev
|
|
97
|
+
Re-run `oke dev` so the stack writes `docker/.env.docker`, or export
|
|
98
98
|
`DATABASE_URL` yourself when pointing at a remote Cockroach host.
|
|
99
99
|
|
|
100
100
|
</Accordion>
|
|
@@ -100,7 +100,7 @@ daemon / systemd limit, or run on a host that allows `memlock: -1`.
|
|
|
100
100
|
</Accordion>
|
|
101
101
|
<Accordion title="oke boot: redis driver needs REDIS_URL">
|
|
102
102
|
|
|
103
|
-
Same driver failure as Redis — export `REDIS_URL` or let
|
|
103
|
+
Same driver failure as Redis — export `REDIS_URL` or let `oke dev` write it. Wrong
|
|
104
104
|
password yields Redis-protocol `NOAUTH` / `WRONGPASS` from the server.
|
|
105
105
|
|
|
106
106
|
</Accordion>
|
|
@@ -10,7 +10,7 @@ and get env, healthcheck, and a connection URL for free.
|
|
|
10
10
|
|
|
11
11
|
<Callout title="The one rule">
|
|
12
12
|
Vendor choice lives in `images[…]` — never in `drivers.*`, which only ever say protocol ids
|
|
13
|
-
(`postgres`, `redis`, `s3`, `smtp`, `
|
|
13
|
+
(`postgres`, `redis`, `s3`, `smtp`, `meilisearch`, `openai-compatible`, `ollama`, …).
|
|
14
14
|
</Callout>
|
|
15
15
|
|
|
16
16
|
## SQL
|
|
@@ -84,7 +84,6 @@ Opt-in via `images.proxy` — leave unset until you need HTTPS or `--scale app=N
|
|
|
84
84
|
href="/docs/recipes/rustfs"
|
|
85
85
|
/>
|
|
86
86
|
<Card title="Mailpit" description="SMTP catcher — UI on :8025." href="/docs/recipes/mailpit" />
|
|
87
|
-
<Card title="OpenBao" description="Raft vault — unseal key SPOF." href="/docs/recipes/openbao" />
|
|
88
87
|
<Card
|
|
89
88
|
title="Meilisearch"
|
|
90
89
|
description="Full-text store.index on :7700."
|
|
@@ -23,7 +23,7 @@ for single-user / dev. Driver id stays `openai-compatible`.
|
|
|
23
23
|
|
|
24
24
|
```typescript title="oke.config.ts"
|
|
25
25
|
drivers: {
|
|
26
|
-
ai: {
|
|
26
|
+
ai: { dev: "openai-compatible", test: "mock", prod: "openai-compatible" },
|
|
27
27
|
},
|
|
28
28
|
images: {
|
|
29
29
|
ai: "ghcr.io/ggml-org/llama.cpp:server-b10290", // never :latest
|
|
@@ -32,7 +32,7 @@ images: {
|
|
|
32
32
|
|
|
33
33
|
Or `oke ai setup --provider llama-cpp` (TTY: banner → Ultra Fast / Fast /
|
|
34
34
|
Balanced / Smart → up to 20 curated Docker Hub `ai/` picks per tier) / `--yes`
|
|
35
|
-
for `
|
|
35
|
+
for `granite3.3:2b`.
|
|
36
36
|
|
|
37
37
|
</Step>
|
|
38
38
|
|
|
@@ -41,19 +41,16 @@ for `smollm2`.
|
|
|
41
41
|
|
|
42
42
|
```bash title="docker/.env.docker"
|
|
43
43
|
OKE_AI_URL=http://127.0.0.1:8080/v1
|
|
44
|
-
OKE_AI_MODEL=
|
|
44
|
+
OKE_AI_MODEL=granite3.3:2b
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
`OKE_AI_MODEL` is a Docker Hub `ai/<id>` model. The recipe writes
|
|
48
|
-
`docker/llama-entrypoint.py`, which Hub-pulls into the cache volume
|
|
49
|
-
`llama
|
|
50
|
-
gemma4), then starts `llama-server -m <gguf> --alias <id>` (single-model — not
|
|
51
|
-
router `--models-preset` / bare `--docker-repo`, which hang on b10290+). Never
|
|
52
|
-
set `LLAMA_ARG_MODELS_PRESET` / `LLAMA_ARG_DOCKER_REPO` in the container env.
|
|
48
|
+
`docker/llama-entrypoint.py`, which Hub-pulls into the cache volume, then starts
|
|
49
|
+
`llama-server -m <gguf> --alias <id>` (single-model).
|
|
53
50
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
Never set `LLAMA_ARG_MODELS_PRESET` / `LLAMA_ARG_DOCKER_REPO` — those hang on
|
|
52
|
+
b10290+. `oke dev` shows the model id and polls `/v1/models` until `ready`
|
|
53
|
+
(first boot may take minutes).
|
|
57
54
|
|
|
58
55
|
</Step>
|
|
59
56
|
|
|
@@ -65,7 +62,7 @@ import { ai } from "okengine";
|
|
|
65
62
|
|
|
66
63
|
export const smart = ai.model("smart", {
|
|
67
64
|
provider: "openai-compatible",
|
|
68
|
-
model: process.env.OKE_AI_MODEL ?? "
|
|
65
|
+
model: process.env.OKE_AI_MODEL ?? "granite3.3:2b",
|
|
69
66
|
});
|
|
70
67
|
```
|
|
71
68
|
|
|
@@ -89,10 +86,10 @@ Postgres/Redis, stricter on the published interface because of GGUF CVE risk.
|
|
|
89
86
|
|
|
90
87
|
## Required env
|
|
91
88
|
|
|
92
|
-
| Variable | Required? | Meaning
|
|
93
|
-
| -------------- | ----------------- |
|
|
94
|
-
| `OKE_AI_URL` | **Yes** in docker | Base URL including `/v1`
|
|
95
|
-
| `OKE_AI_MODEL` | Recommended | Docker Hub `ai/` id (default `
|
|
89
|
+
| Variable | Required? | Meaning |
|
|
90
|
+
| -------------- | ----------------- | --------------------------------------------- |
|
|
91
|
+
| `OKE_AI_URL` | **Yes** in docker | Base URL including `/v1` |
|
|
92
|
+
| `OKE_AI_MODEL` | Recommended | Docker Hub `ai/` id (default `granite3.3:2b`) |
|
|
96
93
|
|
|
97
94
|
## What the recipe configures
|
|
98
95
|
|
|
@@ -127,13 +124,14 @@ interfaces). `OKE_AI_URL` must include `/v1`.
|
|
|
127
124
|
|
|
128
125
|
First start Hub-pulls the curated `ai/` model into the named cache volume
|
|
129
126
|
(see logs: `oke ai: ensuring…` / download %). Prefer `oke ai setup` tiers
|
|
130
|
-
(Ultra Fast → `
|
|
131
|
-
|
|
132
|
-
`
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
`
|
|
127
|
+
(Ultra Fast → `granite3.3:2b`) for smoke tests.
|
|
128
|
+
|
|
129
|
+
Confirm `OKE_AI_MODEL` in `docker/.env.docker` (keep the `.env.local` hint commented so it does not shadow compose). Watch `oke
|
|
130
|
+
dev` until AI status is `ready`.
|
|
131
|
+
|
|
132
|
+
If status stays `loading` on Compose that still uses `--models-preset`,
|
|
133
|
+
regenerate `docker/` and recreate AI. Never mount random GGUF or set
|
|
134
|
+
`LLAMA_ARG_MODELS_PRESET` / `LLAMA_ARG_DOCKER_REPO`.
|
|
137
135
|
|
|
138
136
|
</Accordion>
|
|
139
137
|
</Accordions>
|
|
@@ -5,13 +5,13 @@ icon: "Mail"
|
|
|
5
5
|
source: "docs/spec/unified-theory.md"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
Mailpit is the
|
|
9
|
-
lands in a web UI instead of a real inbox. Pin it as `images
|
|
10
|
-
`drivers.channel.email.
|
|
8
|
+
Mailpit is the `oke dev` email catcher — every message the `smtp` channel driver sends
|
|
9
|
+
lands in a web UI instead of a real inbox. Pin it as `images.channel.email` when
|
|
10
|
+
`drivers.channel.email.dev` is `smtp`.
|
|
11
11
|
|
|
12
12
|
<Callout title="The one rule">
|
|
13
|
-
|
|
14
|
-
swap the image / URL for a real relay
|
|
13
|
+
`dev` ≈ `prod` for the **SMTP protocol** — same `SMTP_URL` shape. Mailpit is not a production MTA;
|
|
14
|
+
swap the image / URL for a real relay in production.
|
|
15
15
|
</Callout>
|
|
16
16
|
|
|
17
17
|
## Quick start
|
|
@@ -24,11 +24,11 @@ lands in a web UI instead of a real inbox. Pin it as `images["channel.email"]` w
|
|
|
24
24
|
```typescript title="oke.config.ts"
|
|
25
25
|
drivers: {
|
|
26
26
|
channel: {
|
|
27
|
-
email: {
|
|
27
|
+
email: { dev: "smtp", test: "console", prod: "smtp" },
|
|
28
28
|
},
|
|
29
29
|
},
|
|
30
30
|
images: {
|
|
31
|
-
|
|
31
|
+
channel: { email: "axllent/mailpit:v1.22.3" },
|
|
32
32
|
},
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -100,7 +100,7 @@ if SMTP still accepts mail.
|
|
|
100
100
|
<Accordion title="oke boot: smtp driver needs SMTP_URL">
|
|
101
101
|
|
|
102
102
|
The smtp binder refuses to start without `SMTP_URL` (or `OKE_CHANNEL_EMAIL_URL`). In
|
|
103
|
-
|
|
103
|
+
under `oke dev` the error asks whether Compose wrote `docker/.env.docker`. Also rejects
|
|
104
104
|
non-`smtp://` schemes: `oke boot: SMTP_URL must use smtp://`.
|
|
105
105
|
|
|
106
106
|
</Accordion>
|
|
@@ -128,9 +128,9 @@ shift the host port).
|
|
|
128
128
|
href="/docs/recipes/rustfs"
|
|
129
129
|
/>
|
|
130
130
|
<Card
|
|
131
|
-
title="
|
|
132
|
-
description="
|
|
133
|
-
href="/docs/
|
|
131
|
+
title="Vault"
|
|
132
|
+
description="Secrets and built-in encrypted store."
|
|
133
|
+
href="/docs/elements/vault"
|
|
134
134
|
/>
|
|
135
135
|
<Card title="Channel" description="How fx.email reaches humans." href="/docs/elements/channel" />
|
|
136
136
|
</Cards>
|
|
@@ -6,12 +6,12 @@ source: "docs/spec/unified-theory.md"
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
Meilisearch backs the `meilisearch` index driver — typo-tolerant full-text search over
|
|
9
|
-
HTTP. Pin `images
|
|
10
|
-
you need it (index does **not** auto-promote
|
|
9
|
+
HTTP. Pin `images.store.index` and set `drivers.store.index` to `meilisearch` where
|
|
10
|
+
you need it (index does **not** auto-promote under Compose).
|
|
11
11
|
|
|
12
12
|
<Callout title="The one rule">
|
|
13
13
|
Index stays `memory` in every environment until you set the driver map explicitly — there is no
|
|
14
|
-
silent
|
|
14
|
+
silent fallback to Meilisearch or pgvector.
|
|
15
15
|
</Callout>
|
|
16
16
|
|
|
17
17
|
## Quick start
|
|
@@ -24,11 +24,11 @@ you need it (index does **not** auto-promote in docker).
|
|
|
24
24
|
```typescript title="oke.config.ts"
|
|
25
25
|
drivers: {
|
|
26
26
|
store: {
|
|
27
|
-
index: {
|
|
27
|
+
index: { dev: "meilisearch", test: "memory", prod: "meilisearch" },
|
|
28
28
|
},
|
|
29
29
|
},
|
|
30
30
|
images: {
|
|
31
|
-
|
|
31
|
+
store: { index: "getmeili/meilisearch:v1.14" },
|
|
32
32
|
},
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -53,8 +53,8 @@ Recipe injects into the container:
|
|
|
53
53
|
<Step>
|
|
54
54
|
### Search from a flow
|
|
55
55
|
|
|
56
|
-
Use `store.index(…)` without `{ dims }` for full-text (vector dims select pgvector
|
|
57
|
-
|
|
56
|
+
Use `store.index(…)` without `{ dims }` for full-text (vector dims select pgvector).
|
|
57
|
+
Writes wait on Meilisearch tasks before returning.
|
|
58
58
|
|
|
59
59
|
</Step>
|
|
60
60
|
|
|
@@ -87,8 +87,8 @@ Always set a non-empty `OKE_STORE_INDEX_KEY` when `MEILI_ENV=production` — Mei
|
|
|
87
87
|
refuses insecure production mode without a master key. Prefer network isolation (compose
|
|
88
88
|
network only) plus the key; do not publish `:7700` on the public internet without auth.
|
|
89
89
|
|
|
90
|
-
Vector `ai.embed` into a meilisearch index fails loud — embeddings need `pgvector
|
|
91
|
-
|
|
90
|
+
Vector `ai.embed` into a meilisearch index fails loud — embeddings need `pgvector`,
|
|
91
|
+
not FTS. See [Store · Index](/docs/elements/store#index).
|
|
92
92
|
|
|
93
93
|
## What the recipe configures
|
|
94
94
|
|
|
@@ -103,7 +103,7 @@ Vector `ai.embed` into a meilisearch index fails loud — embeddings need `pgvec
|
|
|
103
103
|
<Accordions>
|
|
104
104
|
<Accordion title="oke boot: meilisearch index needs OKE_STORE_INDEX_URL">
|
|
105
105
|
|
|
106
|
-
No silent memory fallback. Re-run `oke dev
|
|
106
|
+
No silent memory fallback. Re-run `oke dev` or export `OKE_STORE_INDEX_URL`.
|
|
107
107
|
Docker-mode wording asks whether `docker/.env.docker` was written.
|
|
108
108
|
|
|
109
109
|
</Accordion>
|
|
@@ -23,7 +23,7 @@ want its library pull UX. Pin `images.ai` and set `drivers.ai` to `ollama`.
|
|
|
23
23
|
|
|
24
24
|
```typescript title="oke.config.ts"
|
|
25
25
|
drivers: {
|
|
26
|
-
ai: {
|
|
26
|
+
ai: { dev: "ollama", test: "mock", prod: "ollama" }, // or set prod deliberately
|
|
27
27
|
},
|
|
28
28
|
images: {
|
|
29
29
|
ai: "ollama/ollama:0.32.6", // never :latest — floor 0.17.1 (CVE-2026-7482)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "PgDog"
|
|
3
|
-
description: "Postgres wire-protocol pooler — transaction mode on :6432, generated pgdog
|
|
3
|
+
description: "Postgres wire-protocol pooler — transaction mode on :6432, generated pgdog/ configs, DATABASE_URL rewrite."
|
|
4
4
|
icon: "Package"
|
|
5
5
|
source: "docs/spec/unified-theory.md"
|
|
6
6
|
---
|
|
@@ -21,6 +21,8 @@ transaction-pooling proxy — same wire protocol, no app code changes.
|
|
|
21
21
|
<Step>
|
|
22
22
|
### Pin both images
|
|
23
23
|
|
|
24
|
+
create-oke asks **Add PgDog connection pooling…?** (or pass `--pgdog`). Manually:
|
|
25
|
+
|
|
24
26
|
```typescript title="oke.config.ts"
|
|
25
27
|
images: {
|
|
26
28
|
"store.sql": "postgres:18-alpine",
|
|
@@ -37,8 +39,9 @@ images: {
|
|
|
37
39
|
oke docker
|
|
38
40
|
```
|
|
39
41
|
|
|
40
|
-
Writes `./pgdog.toml` (listen + one primary database) and
|
|
41
|
-
user/password/database as Postgres). The pooler
|
|
42
|
+
Writes `./pgdog/pgdog.toml` (listen + one primary database) and
|
|
43
|
+
`./pgdog/users.toml` (same user/password/database as Postgres). The pooler
|
|
44
|
+
waits on `store-sql` health before start.
|
|
42
45
|
|
|
43
46
|
</Step>
|
|
44
47
|
|
|
@@ -59,7 +62,7 @@ echo "$OKE_STORE_SQL_URL" # still the direct Postgres URL when you need it
|
|
|
59
62
|
|
|
60
63
|
| Variable | Role |
|
|
61
64
|
| ---------------------------------------- | ---------------------------------------------------------------- |
|
|
62
|
-
| `OKE_STORE_SQL_USER` / `PASSWORD` / `DB` | Copied into `users.toml` for client + server auth
|
|
65
|
+
| `OKE_STORE_SQL_USER` / `PASSWORD` / `DB` | Copied into `pgdog/users.toml` for client + server auth |
|
|
63
66
|
| `DATABASE_URL` | Rewritten to the pooler URL (`:6432`) when PgDog is in the stack |
|
|
64
67
|
| `OKE_PGDOG_URL` | Same value as pooled `DATABASE_URL` when both are present |
|
|
65
68
|
| `OKE_STORE_SQL_URL` | Direct Postgres host — bypass the pooler for admin / migrations |
|
|
@@ -68,10 +71,10 @@ PgDog itself has no separate credential env — it mounts the generated TOML fil
|
|
|
68
71
|
|
|
69
72
|
## Data and backup
|
|
70
73
|
|
|
71
|
-
| Mount
|
|
72
|
-
|
|
|
73
|
-
| `./pgdog.toml:/pgdog/pgdog.toml:ro` | Generated listen + `[[databases]]` (host `store-sql`, port `5432`) |
|
|
74
|
-
| `./users.toml:/pgdog/users.toml:ro` | Generated `[[users]]` credentials |
|
|
74
|
+
| Mount | What it is |
|
|
75
|
+
| ----------------------------------------- | ------------------------------------------------------------------ |
|
|
76
|
+
| `./pgdog/pgdog.toml:/pgdog/pgdog.toml:ro` | Generated listen + `[[databases]]` (host `store-sql`, port `5432`) |
|
|
77
|
+
| `./pgdog/users.toml:/pgdog/users.toml:ro` | Generated `[[users]]` credentials |
|
|
75
78
|
|
|
76
79
|
**No database state lives in the PgDog container.** Backing up PgDog means keeping those
|
|
77
80
|
two config files (they are regenerated by `oke docker`). Durable data stays on the
|
|
@@ -104,7 +107,7 @@ not wired into the generated stack yet.
|
|
|
104
107
|
<Accordions>
|
|
105
108
|
<Accordion title="pgdog unhealthy — pg_isready on :6432 fails">
|
|
106
109
|
|
|
107
|
-
Usually the backend is not ready, or `users.toml` credentials do not match Postgres.
|
|
110
|
+
Usually the backend is not ready, or `pgdog/users.toml` credentials do not match Postgres.
|
|
108
111
|
Confirm `store-sql` is healthy first, then re-run `oke docker` so TOML matches
|
|
109
112
|
`OKE_STORE_SQL_*`. Logs often show auth failures against `store-sql:5432`.
|
|
110
113
|
|
|
@@ -5,7 +5,7 @@ icon: "Database"
|
|
|
5
5
|
source: "docs/spec/unified-theory.md"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
Postgres is the default `store.sql` image in
|
|
8
|
+
Postgres is the default `store.sql` image in `dev` and `prod`. `oke docker` matches
|
|
9
9
|
any image whose reference contains `postgres` or `pgvector` (after more specific
|
|
10
10
|
recipes), then derives env, healthcheck, and connection URL.
|
|
11
11
|
|
|
@@ -33,7 +33,7 @@ images: {
|
|
|
33
33
|
### Bring the stack up
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
oke dev
|
|
36
|
+
oke dev
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
`oke docker` writes `POSTGRES_USER` / `POSTGRES_PASSWORD` / `POSTGRES_DB` into
|
|
@@ -105,7 +105,7 @@ Scale out with [PgDog](/docs/recipes/pgdog) so `N × Bun.SQL pool` does not exha
|
|
|
105
105
|
<Accordion title="oke boot: postgres driver needs DATABASE_URL">
|
|
106
106
|
|
|
107
107
|
The `postgres` driver fails boot when neither `DATABASE_URL` nor `OKE_STORE_SQL_URL` is
|
|
108
|
-
set. Re-run `oke dev
|
|
108
|
+
set. Re-run `oke dev` so the stack writes `docker/.env.docker`, or export
|
|
109
109
|
`DATABASE_URL` yourself when pointing at a managed host.
|
|
110
110
|
|
|
111
111
|
</Accordion>
|
|
@@ -5,7 +5,7 @@ icon: "Zap"
|
|
|
5
5
|
source: "docs/spec/unified-theory.md"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
Redis is the default `store.kv` image in
|
|
8
|
+
Redis is the default `store.kv` image in `dev` and `prod`. `oke docker` matches image
|
|
9
9
|
references containing `redis` or `keydb` and derives a password-required server — no
|
|
10
10
|
unauthenticated instance.
|
|
11
11
|
|
|
@@ -99,7 +99,7 @@ Multi-replica Gate rate counters and Signal need a **shared** Redis URL — an i
|
|
|
99
99
|
<Accordion title="oke boot: redis driver needs REDIS_URL">
|
|
100
100
|
|
|
101
101
|
Missing `REDIS_URL` fails boot loudly — never a silent fallback to `memory`. Re-run
|
|
102
|
-
`oke dev
|
|
102
|
+
`oke dev` or export `REDIS_URL` when using a managed host. Under Compose the
|
|
103
103
|
message asks whether `oke dev -d` wrote `docker/.env.docker`.
|
|
104
104
|
|
|
105
105
|
</Accordion>
|
|
@@ -5,9 +5,8 @@ icon: "HardDrive"
|
|
|
5
5
|
source: "docs/spec/unified-theory.md"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
RustFS is the default
|
|
9
|
-
store
|
|
10
|
-
endpoint.
|
|
8
|
+
RustFS is the default `oke dev` / prod `store.files` image — an Apache-2.0 S3-compatible
|
|
9
|
+
object store. Driver id stays `s3`; Bun binds `Bun.S3Client` against the endpoint.
|
|
11
10
|
|
|
12
11
|
<Callout title="The one rule">
|
|
13
12
|
Protocol name is `s3` — vendor choice is the image pin (`rustfs/rustfs:…`) plus `S3_ENDPOINT`.
|
|
@@ -24,11 +23,11 @@ endpoint.
|
|
|
24
23
|
```typescript title="oke.config.ts"
|
|
25
24
|
drivers: {
|
|
26
25
|
store: {
|
|
27
|
-
files: {
|
|
26
|
+
files: { dev: "s3", test: "memory", prod: "s3" },
|
|
28
27
|
},
|
|
29
28
|
},
|
|
30
29
|
images: {
|
|
31
|
-
|
|
30
|
+
store: { files: "rustfs/rustfs:1.0.0-beta.11" },
|
|
32
31
|
},
|
|
33
32
|
```
|
|
34
33
|
|
|
@@ -116,7 +115,7 @@ the recipe enables the console for local ops.
|
|
|
116
115
|
<Accordion title="oke boot: redis / meilisearch / S3 URL missing — S3_BUCKET">
|
|
117
116
|
|
|
118
117
|
Files on the `s3` driver need `S3_BUCKET` (or `OKE_STORE_FILES_DB`). Without it the
|
|
119
|
-
facet cannot open. Re-run `oke dev
|
|
118
|
+
facet cannot open. Re-run `oke dev` so stack env fills `S3_*`, or export them
|
|
120
119
|
for a managed bucket.
|
|
121
120
|
|
|
122
121
|
</Accordion>
|
|
@@ -143,6 +142,10 @@ running service; confirm health at `/health` before debugging client signatures.
|
|
|
143
142
|
description="SMTP catcher for the same stack."
|
|
144
143
|
href="/docs/recipes/mailpit"
|
|
145
144
|
/>
|
|
146
|
-
<Card
|
|
145
|
+
<Card
|
|
146
|
+
title="Vault"
|
|
147
|
+
description="Secrets and built-in encrypted store."
|
|
148
|
+
href="/docs/elements/vault"
|
|
149
|
+
/>
|
|
147
150
|
<Card title="Store" description="Files facet details." href="/docs/elements/store" />
|
|
148
151
|
</Cards>
|
|
@@ -23,7 +23,7 @@ production apps. For general multi-user serving, prefer [vLLM](/docs/recipes/vll
|
|
|
23
23
|
|
|
24
24
|
```typescript title="oke.config.ts"
|
|
25
25
|
drivers: {
|
|
26
|
-
ai: {
|
|
26
|
+
ai: { dev: "openai-compatible", test: "mock", prod: "openai-compatible" },
|
|
27
27
|
},
|
|
28
28
|
images: {
|
|
29
29
|
ai: "lmsysorg/sglang:v0.5.16-runtime", // never :latest
|
|
@@ -33,7 +33,7 @@ images: {
|
|
|
33
33
|
### Bring the stack up
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
oke dev
|
|
36
|
+
oke dev
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
Same credential contract as [Postgres](/docs/recipes/postgres):
|
|
@@ -104,7 +104,7 @@ re-derive, then `CREATE EXTENSION timescaledb`.
|
|
|
104
104
|
</Accordion>
|
|
105
105
|
<Accordion title="oke boot: postgres driver needs DATABASE_URL">
|
|
106
106
|
|
|
107
|
-
Same as Postgres — re-run `oke dev
|
|
107
|
+
Same as Postgres — re-run `oke dev` or export `DATABASE_URL` for a remote
|
|
108
108
|
host.
|
|
109
109
|
|
|
110
110
|
</Accordion>
|
|
@@ -90,7 +90,7 @@ see [DigitalOcean Managed Caching](/docs/providers/digitalocean-caching).
|
|
|
90
90
|
<Accordion title="oke boot: redis driver needs REDIS_URL">
|
|
91
91
|
|
|
92
92
|
Same loud failure as Redis — the driver id is still `redis`. Export `REDIS_URL` or let
|
|
93
|
-
`oke dev
|
|
93
|
+
`oke dev` write it.
|
|
94
94
|
|
|
95
95
|
</Accordion>
|
|
96
96
|
<Accordion title="Healthcheck uses redis-cli and fails">
|
|
@@ -23,7 +23,7 @@ you choose to self-host inference instead of a managed provider. Driver id stays
|
|
|
23
23
|
|
|
24
24
|
```typescript title="oke.config.ts"
|
|
25
25
|
drivers: {
|
|
26
|
-
ai: {
|
|
26
|
+
ai: { dev: "openai-compatible", test: "mock", prod: "openai-compatible" },
|
|
27
27
|
},
|
|
28
28
|
images: {
|
|
29
29
|
ai: "vllm/vllm-openai:v0.26.0", // never :latest
|
|
@@ -33,7 +33,7 @@ images: {
|
|
|
33
33
|
### Bring the stack up
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
oke dev
|
|
36
|
+
oke dev
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
`oke docker` injects `YSQL_USER` / `YSQL_PASSWORD` / `YSQL_DB` from `OKE_STORE_SQL_*`
|
|
@@ -105,7 +105,7 @@ Receiver or remap that port in `compose.override.yml` if you need the UI.
|
|
|
105
105
|
<Accordion title="password authentication failed">
|
|
106
106
|
|
|
107
107
|
`YSQL_PASSWORD` must match `DATABASE_URL`. Regenerate `docker/.env.docker` with
|
|
108
|
-
`oke dev
|
|
108
|
+
`oke dev`. Auth is off only when `YSQL_PASSWORD` is unset — this recipe
|
|
109
109
|
always sets it.
|
|
110
110
|
|
|
111
111
|
</Accordion>
|