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.
Files changed (343) hide show
  1. package/package.json +76 -10
  2. package/site/content/docs/ai/mcp.mdx +0 -1
  3. package/site/content/docs/deployment/docker-swarm.mdx +48 -111
  4. package/site/content/docs/deployment/docker.mdx +43 -36
  5. package/site/content/docs/deployment/index.mdx +9 -9
  6. package/site/content/docs/deployment/kubernetes.mdx +4 -4
  7. package/site/content/docs/elements/ai.mdx +7 -13
  8. package/site/content/docs/elements/channel.mdx +9 -13
  9. package/site/content/docs/elements/clock.mdx +8 -14
  10. package/site/content/docs/elements/flow.mdx +46 -54
  11. package/site/content/docs/elements/gate.mdx +6 -11
  12. package/site/content/docs/elements/signal.mdx +2 -8
  13. package/site/content/docs/elements/store.mdx +79 -93
  14. package/site/content/docs/elements/vault.mdx +89 -76
  15. package/site/content/docs/get-started/basic-usage.mdx +8 -14
  16. package/site/content/docs/get-started/installation.mdx +36 -36
  17. package/site/content/docs/get-started/introduction.mdx +11 -0
  18. package/site/content/docs/get-started/why.mdx +3 -4
  19. package/site/content/docs/index.mdx +0 -1
  20. package/site/content/docs/meta.json +0 -1
  21. package/site/content/docs/plugins/anonymous.mdx +1 -1
  22. package/site/content/docs/plugins/magic-link.mdx +11 -11
  23. package/site/content/docs/plugins/otp.mdx +2 -2
  24. package/site/content/docs/plugins/passkey.mdx +1 -1
  25. package/site/content/docs/plugins/two-factor.mdx +1 -1
  26. package/site/content/docs/plugins/username.mdx +1 -1
  27. package/site/content/docs/recipes/caddy.mdx +1 -1
  28. package/site/content/docs/recipes/cockroachdb.mdx +2 -2
  29. package/site/content/docs/recipes/dragonfly.mdx +1 -1
  30. package/site/content/docs/recipes/index.mdx +1 -2
  31. package/site/content/docs/recipes/llama-cpp.mdx +21 -23
  32. package/site/content/docs/recipes/mailpit.mdx +11 -11
  33. package/site/content/docs/recipes/meilisearch.mdx +10 -10
  34. package/site/content/docs/recipes/meta.json +0 -1
  35. package/site/content/docs/recipes/ollama.mdx +1 -1
  36. package/site/content/docs/recipes/pgdog.mdx +12 -9
  37. package/site/content/docs/recipes/postgres.mdx +3 -3
  38. package/site/content/docs/recipes/redis.mdx +2 -2
  39. package/site/content/docs/recipes/rustfs.mdx +10 -7
  40. package/site/content/docs/recipes/sglang.mdx +1 -1
  41. package/site/content/docs/recipes/supabase-docker.mdx +1 -1
  42. package/site/content/docs/recipes/timescale.mdx +2 -2
  43. package/site/content/docs/recipes/valkey.mdx +1 -1
  44. package/site/content/docs/recipes/vllm.mdx +1 -1
  45. package/site/content/docs/recipes/yugabytedb.mdx +2 -2
  46. package/site/content/docs/reference/cli.md +61 -38
  47. package/site/content/docs/reference/configuration.mdx +145 -70
  48. package/site/content/docs/reference/environment-variables.mdx +36 -28
  49. package/site/content/docs/reference/errors.mdx +28 -29
  50. package/site/content/docs/reference/fx.mdx +14 -7
  51. package/site/content/docs/reference/i18n.mdx +17 -6
  52. package/site/content/docs/reference/index.mdx +5 -0
  53. package/site/content/docs/reference/meta.json +1 -0
  54. package/site/content/docs/reference/migrating-environments.mdx +158 -0
  55. package/site/content/docs/reference/plugins.mdx +2 -2
  56. package/src/auth/gate-auth.test.ts +12 -10
  57. package/src/cli/ai-setup/ai-setup.test.ts +30 -16
  58. package/src/cli/ai-setup/apply.ts +111 -15
  59. package/src/cli/ai-setup/catalog.ts +3 -3
  60. package/src/cli/ai-setup/index.ts +1 -1
  61. package/src/cli/ai-setup/prompts.ts +1 -1
  62. package/src/cli/ai-setup/recommend.test.ts +1 -1
  63. package/src/cli/ask-seed.test.ts +3 -3
  64. package/src/cli/build.ts +8 -9
  65. package/src/cli/db-auto-push.test.ts +6 -3
  66. package/src/cli/db-auto-push.ts +7 -5
  67. package/src/cli/db-seed.ts +7 -8
  68. package/src/cli/db.test.ts +70 -71
  69. package/src/cli/db.ts +86 -12
  70. package/src/cli/dev-controller.test.ts +35 -0
  71. package/src/cli/dev-controller.ts +298 -0
  72. package/src/cli/dev-controls.ts +11 -65
  73. package/src/cli/dev-db-push.test.ts +47 -15
  74. package/src/cli/dev-schema-sync.test.ts +11 -11
  75. package/src/cli/dev-schema-sync.ts +10 -10
  76. package/src/cli/dev-session-lock.test.ts +106 -0
  77. package/src/cli/dev-session-lock.ts +209 -0
  78. package/src/cli/dev.test.ts +246 -114
  79. package/src/cli/dev.ts +153 -205
  80. package/src/cli/doc-staleness.test.ts +3 -6
  81. package/src/cli/docker-clean.test.ts +33 -1
  82. package/src/cli/docker-clean.ts +28 -33
  83. package/src/cli/docker-cli.test.ts +12 -11
  84. package/src/cli/docker.ts +95 -20
  85. package/src/cli/doctor.test.ts +40 -0
  86. package/src/cli/doctor.ts +142 -9
  87. package/src/cli/drizzle-env.test.ts +11 -13
  88. package/src/cli/drizzle-env.ts +18 -11
  89. package/src/cli/ensure-drizzle-config.ts +11 -14
  90. package/src/cli/hero-meta.test.ts +15 -15
  91. package/src/cli/hero-meta.ts +10 -9
  92. package/src/cli/index.ts +36 -6
  93. package/src/cli/load-config.images.test.ts +44 -10
  94. package/src/cli/load-config.source.test.ts +50 -0
  95. package/src/cli/load-config.ts +35 -29
  96. package/src/cli/meilisearch-local.ts +1 -2
  97. package/src/cli/mode.ts +7 -58
  98. package/src/cli/registry.ts +175 -19
  99. package/src/cli/resolve-dev-sql-env.test.ts +8 -16
  100. package/src/cli/resolve-dev-sql-env.ts +13 -15
  101. package/src/cli/safe-defaults.test.ts +29 -11
  102. package/src/cli/schema.ts +65 -16
  103. package/src/cli/test.ts +58 -0
  104. package/src/cli/tui/App.tsx +252 -0
  105. package/src/cli/tui/DevLive.tsx +116 -0
  106. package/src/cli/tui/components/ConfirmDialog.tsx +48 -0
  107. package/src/cli/tui/components/HeaderBar.tsx +67 -0
  108. package/src/cli/tui/components/LogStream.tsx +47 -0
  109. package/src/cli/tui/components/PanelCard.tsx +39 -0
  110. package/src/cli/tui/components/SelectRow.tsx +37 -0
  111. package/src/cli/tui/components/SlashPalette.tsx +172 -0
  112. package/src/cli/tui/components/Spinner.tsx +32 -0
  113. package/src/cli/tui/components/StatusBar.tsx +51 -0
  114. package/src/cli/tui/components/StatusDot.tsx +37 -0
  115. package/src/cli/tui/components/TabBar.tsx +49 -0
  116. package/src/cli/tui/components/Wordmark.tsx +43 -0
  117. package/src/cli/tui/format.ts +38 -0
  118. package/src/cli/tui/keys.test.ts +18 -0
  119. package/src/cli/tui/keys.ts +26 -0
  120. package/src/cli/tui/launch.test.ts +18 -0
  121. package/src/cli/tui/launch.ts +57 -0
  122. package/src/cli/tui/panels/Dashboard.tsx +201 -0
  123. package/src/cli/tui/panels/Database.tsx +198 -0
  124. package/src/cli/tui/panels/Dev.tsx +257 -0
  125. package/src/cli/tui/panels/Docker.tsx +357 -0
  126. package/src/cli/tui/panels/Navigator.test.ts +22 -0
  127. package/src/cli/tui/panels/Navigator.tsx +213 -0
  128. package/src/cli/tui/slash-catalog.test.ts +31 -0
  129. package/src/cli/tui/slash-catalog.ts +184 -0
  130. package/src/cli/tui/slash-run.ts +54 -0
  131. package/src/cli/tui/state/ports.ts +95 -0
  132. package/src/cli/tui/theme.ts +24 -0
  133. package/src/cli/vault-cmd.test.ts +402 -0
  134. package/src/cli/vault-cmd.ts +727 -69
  135. package/src/cli/vault-secure-input.test.ts +56 -0
  136. package/src/cli/vault-secure-input.ts +124 -0
  137. package/src/compiler/effects-infer.ts +7 -0
  138. package/src/compiler/extract.ts +12 -0
  139. package/src/compiler/fixtures/skyport/oke.config.ts +7 -5
  140. package/src/compiler/fixtures/skyport/src/flows/payments/index.ts +1 -1
  141. package/src/compiler/fixtures/skyport.expected.json +1 -1
  142. package/src/compiler/generate-adopt.ts +27 -1
  143. package/src/compiler-entry.ts +7 -0
  144. package/src/config/define-config.test.ts +111 -47
  145. package/src/config/driver-defaults.test.ts +115 -0
  146. package/src/config/driver-defaults.ts +156 -0
  147. package/src/config/index.ts +246 -131
  148. package/src/config/resolve-driver.test.ts +14 -19
  149. package/src/console/server/app.ts +4 -2
  150. package/src/console/server/console.test.ts +58 -1
  151. package/src/console/server/flows.ts +22 -2
  152. package/src/console/server/index.ts +3 -0
  153. package/src/console/server/operator-db.test.ts +55 -13
  154. package/src/console/server/operator-db.ts +305 -263
  155. package/src/console/server/serve.ts +16 -7
  156. package/src/console/server/state.ts +31 -9
  157. package/src/console/server/vault.test.ts +120 -5
  158. package/src/console/server/vault.ts +208 -12
  159. package/src/console/ui/dist/assets/{index-D-9KFce5.js → index--Y0Uaz-m.js} +2 -2
  160. package/src/console/ui/dist/assets/panel-vault-BkZdJPX8.js +1 -0
  161. package/src/console/ui/dist/assets/style-C3L349iZ.css +3 -0
  162. package/src/console/ui/dist/index.html +2 -2
  163. package/src/console/ui/shell/client.ts +16 -0
  164. package/src/console/ui/shell/panels/vault/VaultPanel.tsx +54 -1
  165. package/src/console/ui/vault/VaultA11yView.tsx +33 -1
  166. package/src/console/ui/vault/backend.test.ts +75 -0
  167. package/src/console/ui/vault/backend.ts +117 -0
  168. package/src/console/ui/vault/fixture.ts +21 -2
  169. package/src/console/ui/vault/index.ts +11 -1
  170. package/src/console/ui/vault/types.ts +26 -0
  171. package/src/docker/compose.ts +164 -61
  172. package/src/docker/derive.ts +106 -12
  173. package/src/docker/docker.test.ts +156 -110
  174. package/src/docker/helpers.ts +98 -0
  175. package/src/docker/images-config.test.ts +163 -0
  176. package/src/docker/index.ts +30 -5
  177. package/src/docker/recipes/index.ts +0 -3
  178. package/src/docker/recipes/llama-cpp.ts +4 -4
  179. package/src/docker/recipes/pgdog.ts +9 -2
  180. package/src/docker/resources.test.ts +71 -0
  181. package/src/docker/resources.ts +176 -0
  182. package/src/docker/stack-id.test.ts +11 -4
  183. package/src/docker/stack-id.ts +42 -32
  184. package/src/docker/stack.integration.test.ts +4 -15
  185. package/src/docker/types.ts +35 -3
  186. package/src/drivers/ai-ollama.integration.test.ts +2 -2
  187. package/src/drivers/conformance.test.ts +11 -12
  188. package/src/drivers/drizzle-dialect.test.ts +0 -4
  189. package/src/drivers/drizzle-dialect.ts +7 -13
  190. package/src/drivers/index.ts +24 -7
  191. package/src/drivers/journal-postgres.test.ts +3 -1
  192. package/src/drivers/journal-postgres.ts +4 -2
  193. package/src/drivers/meilisearch.ts +1 -1
  194. package/src/drivers/pglite.ts +28 -5
  195. package/src/drivers/types.ts +9 -11
  196. package/src/drivers/vault-aws-secrets-manager.test.ts +159 -0
  197. package/src/drivers/vault-aws-secrets-manager.ts +333 -0
  198. package/src/drivers/vault-builtin.test.ts +110 -0
  199. package/src/drivers/vault-builtin.ts +184 -0
  200. package/src/drivers/vault-driver-removal.test.ts +13 -0
  201. package/src/drivers/vault-managed.test.ts +95 -0
  202. package/src/drivers/vault-managed.ts +101 -25
  203. package/src/drivers/vault-types.ts +25 -5
  204. package/src/elements/ai/runtime.ts +1 -1
  205. package/src/elements/clock/chaos.test.ts +4 -1
  206. package/src/elements/clock/durable.ts +57 -4
  207. package/src/elements/clock.test.ts +13 -14
  208. package/src/elements/gate/constants.ts +18 -0
  209. package/src/elements/gate.test.ts +1 -1
  210. package/src/elements/gate.ts +2 -2
  211. package/src/elements/store/domain-ddl.test.ts +5 -12
  212. package/src/elements/store/emit-drizzle.ts +44 -19
  213. package/src/elements/store/index-boot.test.ts +15 -116
  214. package/src/elements/store/load-plugin-tables.ts +1 -1
  215. package/src/elements/store/resource-list-docs.fixture.ts +12 -6
  216. package/src/elements/store/resource-list-docs.test.ts +64 -44
  217. package/src/elements/store/resource.test.ts +17 -10
  218. package/src/elements/store/runtime.ts +9 -12
  219. package/src/elements/store/schema-decl.test.ts +16 -32
  220. package/src/elements/store/seed.test.ts +1 -2
  221. package/src/elements/store/seed.ts +7 -8
  222. package/src/elements/store/sql-condition.test.ts +2 -2
  223. package/src/elements/store/sql-session.test.ts +8 -10
  224. package/src/elements/store/sql-session.ts +10 -2
  225. package/src/elements/store.test.ts +13 -13
  226. package/src/elements/vault/audit.ts +233 -0
  227. package/src/elements/vault/boot-chain.test.ts +78 -0
  228. package/src/elements/vault/boot-chain.ts +43 -39
  229. package/src/elements/vault/builtin-adapter.test.ts +479 -0
  230. package/src/elements/vault/builtin-adapter.ts +1184 -0
  231. package/src/elements/vault/crypto.test.ts +237 -0
  232. package/src/elements/vault/crypto.ts +431 -0
  233. package/src/elements/vault/declare.ts +164 -3
  234. package/src/elements/vault/errors.ts +56 -0
  235. package/src/elements/vault/kms-unseal.test.ts +76 -0
  236. package/src/elements/vault/kms-unseal.ts +181 -0
  237. package/src/elements/vault/path.ts +90 -0
  238. package/src/elements/vault/resilience.test.ts +102 -0
  239. package/src/elements/vault/resilience.ts +107 -0
  240. package/src/elements/vault/runtime.ts +36 -4
  241. package/src/elements/vault/security-checklist.test.ts +130 -0
  242. package/src/elements/vault/storage.ts +448 -0
  243. package/src/elements/vault/types.ts +288 -0
  244. package/src/elements/vault/unseal.ts +150 -0
  245. package/src/elements/vault.test.ts +72 -4
  246. package/src/elements/vault.ts +91 -2
  247. package/src/full.ts +248 -0
  248. package/src/http.ts +41 -0
  249. package/src/i18n/interpolate-simple.ts +37 -0
  250. package/src/i18n/messages.ts +51 -4
  251. package/src/i18n-entry.ts +7 -0
  252. package/src/index.ts +35 -145
  253. package/src/journal-entry.ts +20 -0
  254. package/src/kernel/adopt-barrel-fresh.test.ts +25 -10
  255. package/src/kernel/app.ts +40 -42
  256. package/src/kernel/auto-registry.test.ts +2 -2
  257. package/src/kernel/boot-bind/ai.test.ts +5 -5
  258. package/src/kernel/boot-bind/ai.ts +2 -1
  259. package/src/kernel/boot-bind/channel.test.ts +6 -6
  260. package/src/kernel/boot-bind/channel.ts +5 -4
  261. package/src/kernel/boot-bind/clock.ts +5 -5
  262. package/src/kernel/boot-bind/gate.ts +6 -7
  263. package/src/kernel/boot-bind/honor-config.test.ts +42 -42
  264. package/src/kernel/boot-bind/journal.ts +5 -5
  265. package/src/kernel/boot-bind/signal.ts +3 -1
  266. package/src/kernel/boot-bind/store.test.ts +55 -37
  267. package/src/kernel/boot-bind/store.ts +24 -34
  268. package/src/kernel/boot-bind/vault.ts +19 -4
  269. package/src/kernel/boot.test.ts +12 -4
  270. package/src/kernel/boot.ts +31 -19
  271. package/src/kernel/budget-entry.ts +1 -1
  272. package/src/kernel/compensate.test.ts +288 -1
  273. package/src/kernel/compensate.ts +126 -0
  274. package/src/kernel/concurrency.test.ts +10 -9
  275. package/src/kernel/effects-stamping.test.ts +27 -2
  276. package/src/kernel/element-registries.ts +5 -3
  277. package/src/kernel/flow.ts +4 -2
  278. package/src/kernel/fx.test.ts +119 -3
  279. package/src/kernel/fx.ts +215 -40
  280. package/src/kernel/index.ts +14 -0
  281. package/src/kernel/journal.ts +130 -7
  282. package/src/kernel/pipeline.test.ts +20 -6
  283. package/src/kernel/redacted.test.ts +35 -0
  284. package/src/kernel/redacted.ts +24 -2
  285. package/src/kernel/router/create-default.ts +16 -0
  286. package/src/kernel/router/create-edge.ts +18 -0
  287. package/src/kernel/router/create.ts +23 -0
  288. package/src/kernel/router/index.ts +23 -0
  289. package/src/kernel/router/linear.ts +88 -0
  290. package/src/kernel/router/regexp.ts +188 -0
  291. package/src/kernel/router/smart.ts +120 -0
  292. package/src/kernel/router/trie.ts +108 -0
  293. package/src/kernel/router/types.ts +56 -0
  294. package/src/kernel/router.ts +18 -532
  295. package/src/kernel-entry.ts +43 -0
  296. package/src/manifest/fixtures/skyport.excerpt.json +1 -1
  297. package/src/manifest/fixtures/skyport.manifest.json +1 -1
  298. package/src/plugins/config-source.test.ts +7 -7
  299. package/src/release/build-lib.ts +58 -0
  300. package/src/release/exports.test.ts +4 -2
  301. package/src/release/exports.ts +30 -4
  302. package/src/release/measure.ts +101 -22
  303. package/src/runs/duckdb.ts +7 -2
  304. package/src/shared/optional-peer.ts +41 -0
  305. package/src/term.test.ts +3 -44
  306. package/src/test/create-test-app.ts +12 -0
  307. package/src/test/provisions.integration.test.ts +1 -1
  308. package/src/test/reset-element-registries.ts +2 -0
  309. package/src/upgrade/codemods.test.ts +7 -20
  310. package/src/upgrade/codemods.ts +93 -60
  311. package/site/content/docs/console/access.mdx +0 -29
  312. package/site/content/docs/console/ai.mdx +0 -35
  313. package/site/content/docs/console/architecture.mdx +0 -35
  314. package/site/content/docs/console/channels.mdx +0 -37
  315. package/site/content/docs/console/clock.mdx +0 -51
  316. package/site/content/docs/console/flows.mdx +0 -31
  317. package/site/content/docs/console/gates.mdx +0 -73
  318. package/site/content/docs/console/index.mdx +0 -54
  319. package/site/content/docs/console/manifest-diff.mdx +0 -34
  320. package/site/content/docs/console/meta.json +0 -24
  321. package/site/content/docs/console/overview.mdx +0 -40
  322. package/site/content/docs/console/plugins.mdx +0 -41
  323. package/site/content/docs/console/privacy.mdx +0 -32
  324. package/site/content/docs/console/runs.mdx +0 -50
  325. package/site/content/docs/console/signals.mdx +0 -40
  326. package/site/content/docs/console/store.mdx +0 -32
  327. package/site/content/docs/console/tenancy.mdx +0 -32
  328. package/site/content/docs/console/traces.mdx +0 -38
  329. package/site/content/docs/console/vault.mdx +0 -41
  330. package/site/content/docs/recipes/openbao.mdx +0 -141
  331. package/src/cli/ask-dev-mode.ts +0 -40
  332. package/src/cli/dev-mode.test.ts +0 -45
  333. package/src/cli/dev-mode.ts +0 -78
  334. package/src/cli/openbao-bootstrap.test.ts +0 -150
  335. package/src/cli/openbao-bootstrap.ts +0 -321
  336. package/src/cli/openbao-restart.integration.test.ts +0 -145
  337. package/src/console/ui/dist/assets/panel-vault-Za1GyJfM.js +0 -1
  338. package/src/console/ui/dist/assets/style-C8MxEWPd.css +0 -3
  339. package/src/docker/recipes/openbao.ts +0 -47
  340. package/src/drivers/libsql.ts +0 -179
  341. package/src/drivers/sqlite.ts +0 -44
  342. package/src/drivers/vault-openbao.test.ts +0 -97
  343. package/src/drivers/vault-openbao.ts +0 -143
@@ -26,7 +26,7 @@ import { username } from "okengine/plugins";
26
26
 
27
27
  export const app = oke({
28
28
  name: "shop",
29
- env: "local",
29
+ env: "dev",
30
30
  gate: { auth: {} },
31
31
  }).plug(username());
32
32
  ```
@@ -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 compose.yml -f compose.proxy.yml up -d
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 --docker
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 --docker` so the stack writes `docker/.env.docker`, or export
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 docker mode write it. Wrong
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`, `openbao`, `meilisearch`, `openai-compatible`, `ollama`, …).
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: { local: "openai-compatible", docker: "openai-compatible", test: "mock" },
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 `smollm2`.
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=smollm2
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 (native
49
- `llama download -dr`, then a CNCF `model.weight` fallback for newer tags like
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
- `oke dev -d` shows the model id in the hero / Docker summary and polls
55
- `/v1/models` in the background until status is `ready` (first boot may take
56
- minutes while the Hub image downloads).
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 ?? "smollm2",
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 `smollm2`) |
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 → `smollm2`) for smoke tests. Confirm `OKE_AI_MODEL` is active in
131
- `.env.local` / `docker/.env.docker`. Watch `oke dev` (`AI … — waiting…` →
132
- `ready`). If status stays `loading` forever on an old stack that still uses
133
- `--models-preset`, regenerate `docker/` and recreate AI. Newer Hub tags use
134
- CNCF weight layers — the entrypoint falls back when native `llama download`
135
- cannot find `vnd.docker.ai.gguf.v3`. Do not mount random GGUF files. Never put
136
- `LLAMA_ARG_MODELS_PRESET` / `LLAMA_ARG_DOCKER_REPO` in the container env.
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 docker-mode 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.docker` is `smtp`.
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
- Docker ≈ prod for the **SMTP protocol** — same `SMTP_URL` shape. Mailpit is not a production MTA;
14
- swap the image / URL for a real relay when you leave local docker.
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: { local: "console", docker: "smtp", test: "console", prod: "smtp" },
27
+ email: { dev: "smtp", test: "console", prod: "smtp" },
28
28
  },
29
29
  },
30
30
  images: {
31
- "channel.email": "axllent/mailpit:v1.22.3",
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
- docker mode the error asks whether `oke dev -d` wrote `docker/.env.docker`. Also rejects
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="OpenBao"
132
- description="Vault recipe for docker/prod secrets."
133
- href="/docs/recipes/openbao"
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["store.index"]` and set `drivers.store.index` to `meilisearch` where
10
- you need it (index does **not** auto-promote in docker).
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 docker fallback to Meilisearch or pgvector.
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: { local: "memory", docker: "meilisearch", prod: "meilisearch" },
27
+ index: { dev: "meilisearch", test: "memory", prod: "meilisearch" },
28
28
  },
29
29
  },
30
30
  images: {
31
- "store.index": "getmeili/meilisearch:v1.14",
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
- libsql). Writes wait on Meilisearch tasks before returning.
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
- `libsql`, not FTS. See [Store · Index](/docs/elements/store#index).
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 --docker` or export `OKE_STORE_INDEX_URL`.
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>
@@ -20,7 +20,6 @@
20
20
  "pgdog",
21
21
  "rustfs",
22
22
  "mailpit",
23
- "openbao",
24
23
  "meilisearch",
25
24
  "---AI---",
26
25
  "llama-cpp",
@@ -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: { local: "ollama", docker: "ollama", test: "mock" }, // prod: set deliberately
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.toml / users.toml, DATABASE_URL rewrite."
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 `./users.toml` (same
41
- user/password/database as Postgres). The pooler waits on `store-sql` health before start.
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 | What it is |
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 docker and prod. `oke docker` matches
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 --docker
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 --docker` so the stack writes `docker/.env.docker`, or export
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 docker and prod. `oke docker` matches image
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 --docker` or export `REDIS_URL` when using a managed host. In docker mode the
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 docker `store.files` image — an Apache-2.0 S3-compatible object
9
- store (MinIO alternative). Driver id stays `s3`; Bun binds `Bun.S3Client` against the
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: { local: "fs", docker: "s3", test: "memory", prod: "s3" },
26
+ files: { dev: "s3", test: "memory", prod: "s3" },
28
27
  },
29
28
  },
30
29
  images: {
31
- "store.files": "rustfs/rustfs:1.0.0-beta.11",
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 --docker` so stack env fills `S3_*`, or export them
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 title="OpenBao" description="Vault for secrets." href="/docs/recipes/openbao" />
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: { docker: "openai-compatible", prod: "openai-compatible", test: "mock" },
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
@@ -44,7 +44,7 @@ refs from `OKE_STORE_SQL_*`. Driver id stays `postgres`.
44
44
  ```typescript
45
45
  drivers: {
46
46
  store: {
47
- index: { local: "memory", docker: "pgvector", prod: "pgvector" },
47
+ index: { test: "memory", prod: "pgvector" },
48
48
  },
49
49
  },
50
50
  ```
@@ -33,7 +33,7 @@ images: {
33
33
  ### Bring the stack up
34
34
 
35
35
  ```bash
36
- oke dev --docker
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 --docker` or export `DATABASE_URL` for a remote
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 --docker` write it.
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: { docker: "openai-compatible", prod: "openai-compatible", test: "mock" },
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 --docker
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 --docker`. Auth is off only when `YSQL_PASSWORD` is unset — this recipe
108
+ `oke dev`. Auth is off only when `YSQL_PASSWORD` is unset — this recipe
109
109
  always sets it.
110
110
 
111
111
  </Accordion>