@alneas/eaos-server 0.0.0-stage → 0.2.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/CHANGELOG.md +41 -0
- package/LICENSE +21 -0
- package/README.ja.md +49 -0
- package/README.md +46 -2
- package/dist/agentic/agent-jobs.d.ts +333 -0
- package/dist/agentic/agent-jobs.js +15 -0
- package/dist/agentic/agent-jobs.js.map +1 -0
- package/dist/agentic/agent-node.d.ts +40 -0
- package/dist/agentic/agent-node.js +7 -0
- package/dist/agentic/agent-node.js.map +1 -0
- package/dist/agentic/agent-runner.d.ts +33 -0
- package/dist/agentic/agent-runner.js +7 -0
- package/dist/agentic/agent-runner.js.map +1 -0
- package/dist/agentic/ai-broker.d.ts +169 -0
- package/dist/agentic/ai-broker.js +8 -0
- package/dist/agentic/ai-broker.js.map +1 -0
- package/dist/agentic/atomic-checkpointer.d.ts +137 -0
- package/dist/agentic/atomic-checkpointer.js +9 -0
- package/dist/agentic/atomic-checkpointer.js.map +1 -0
- package/dist/agentic/autonomous-worker.d.ts +122 -0
- package/dist/agentic/autonomous-worker.js +10 -0
- package/dist/agentic/autonomous-worker.js.map +1 -0
- package/dist/agentic/event-bridge.d.ts +350 -0
- package/dist/agentic/event-bridge.js +9 -0
- package/dist/agentic/event-bridge.js.map +1 -0
- package/dist/agentic/executor.d.ts +91 -0
- package/dist/agentic/executor.js +12 -0
- package/dist/agentic/executor.js.map +1 -0
- package/dist/agentic/graph-projection.d.ts +119 -0
- package/dist/agentic/graph-projection.js +7 -0
- package/dist/agentic/graph-projection.js.map +1 -0
- package/dist/agentic/graph.d.ts +524 -0
- package/dist/agentic/graph.js +7 -0
- package/dist/agentic/graph.js.map +1 -0
- package/dist/agentic/index.d.ts +28 -0
- package/dist/agentic/index.js +87 -0
- package/dist/agentic/index.js.map +1 -0
- package/dist/agentic/local-runner.d.ts +106 -0
- package/dist/agentic/local-runner.js +7 -0
- package/dist/agentic/local-runner.js.map +1 -0
- package/dist/agentic/remote-executor.d.ts +67 -0
- package/dist/agentic/remote-executor.js +8 -0
- package/dist/agentic/remote-executor.js.map +1 -0
- package/dist/agentic/types.d.ts +157 -0
- package/dist/agentic/types.js +7 -0
- package/dist/agentic/types.js.map +1 -0
- package/dist/agentic/workflow-catalog.d.ts +152 -0
- package/dist/agentic/workflow-catalog.js +7 -0
- package/dist/agentic/workflow-catalog.js.map +1 -0
- package/dist/agentic/workflow-compiler.d.ts +44 -0
- package/dist/agentic/workflow-compiler.js +8 -0
- package/dist/agentic/workflow-compiler.js.map +1 -0
- package/dist/agentic/workflow-coordinator.d.ts +170 -0
- package/dist/agentic/workflow-coordinator.js +8 -0
- package/dist/agentic/workflow-coordinator.js.map +1 -0
- package/dist/agentic/workflow-manager.d.ts +91 -0
- package/dist/agentic/workflow-manager.js +7 -0
- package/dist/agentic/workflow-manager.js.map +1 -0
- package/dist/agentic/workflow-registry.d.ts +334 -0
- package/dist/agentic/workflow-registry.js +7 -0
- package/dist/agentic/workflow-registry.js.map +1 -0
- package/dist/artifacts-CteHmCMI.d.ts +614 -0
- package/dist/auth-hooks/api-key.d.ts +75 -0
- package/dist/auth-hooks/api-key.js +7 -0
- package/dist/auth-hooks/api-key.js.map +1 -0
- package/dist/auth-hooks/index.d.ts +80 -0
- package/dist/auth-hooks/index.js +28 -0
- package/dist/auth-hooks/index.js.map +1 -0
- package/dist/browser-auth/account-memberships.d.ts +213 -0
- package/dist/browser-auth/account-memberships.js +13 -0
- package/dist/browser-auth/account-memberships.js.map +1 -0
- package/dist/browser-auth/index.d.ts +8 -0
- package/dist/browser-auth/index.js +59 -0
- package/dist/browser-auth/index.js.map +1 -0
- package/dist/browser-auth/kratos-session.d.ts +37 -0
- package/dist/browser-auth/kratos-session.js +7 -0
- package/dist/browser-auth/kratos-session.js.map +1 -0
- package/dist/browser-auth/platform-session.d.ts +120 -0
- package/dist/browser-auth/platform-session.js +7 -0
- package/dist/browser-auth/platform-session.js.map +1 -0
- package/dist/browser-auth/public-memberships.d.ts +22 -0
- package/dist/browser-auth/public-memberships.js +7 -0
- package/dist/browser-auth/public-memberships.js.map +1 -0
- package/dist/cache/index.d.ts +181 -0
- package/dist/cache/index.js +197 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/chunk-32746UQZ.js +131 -0
- package/dist/chunk-32746UQZ.js.map +1 -0
- package/dist/chunk-3NLSWP2Y.js +223 -0
- package/dist/chunk-3NLSWP2Y.js.map +1 -0
- package/dist/chunk-3P4XTTQH.js +346 -0
- package/dist/chunk-3P4XTTQH.js.map +1 -0
- package/dist/chunk-3VITSHN3.js +15 -0
- package/dist/chunk-3VITSHN3.js.map +1 -0
- package/dist/chunk-46UWPEW2.js +226 -0
- package/dist/chunk-46UWPEW2.js.map +1 -0
- package/dist/chunk-4BARRLJR.js +180 -0
- package/dist/chunk-4BARRLJR.js.map +1 -0
- package/dist/chunk-4VORUFKR.js +45 -0
- package/dist/chunk-4VORUFKR.js.map +1 -0
- package/dist/chunk-55D4ERWO.js +1 -0
- package/dist/chunk-55D4ERWO.js.map +1 -0
- package/dist/chunk-5TBBZIND.js +18 -0
- package/dist/chunk-5TBBZIND.js.map +1 -0
- package/dist/chunk-5WOZWPZA.js +211 -0
- package/dist/chunk-5WOZWPZA.js.map +1 -0
- package/dist/chunk-6CBVZ6CT.js +168 -0
- package/dist/chunk-6CBVZ6CT.js.map +1 -0
- package/dist/chunk-6XZXYNJR.js +74 -0
- package/dist/chunk-6XZXYNJR.js.map +1 -0
- package/dist/chunk-753HWDSC.js +222 -0
- package/dist/chunk-753HWDSC.js.map +1 -0
- package/dist/chunk-7AHSS7SO.js +81 -0
- package/dist/chunk-7AHSS7SO.js.map +1 -0
- package/dist/chunk-7FTJN4SA.js +1 -0
- package/dist/chunk-7FTJN4SA.js.map +1 -0
- package/dist/chunk-AVDMLTPF.js +24 -0
- package/dist/chunk-AVDMLTPF.js.map +1 -0
- package/dist/chunk-BKAHUEIT.js +95 -0
- package/dist/chunk-BKAHUEIT.js.map +1 -0
- package/dist/chunk-CJ7OFEF7.js +134 -0
- package/dist/chunk-CJ7OFEF7.js.map +1 -0
- package/dist/chunk-EJKWDZIU.js +111 -0
- package/dist/chunk-EJKWDZIU.js.map +1 -0
- package/dist/chunk-F2J6IQ6I.js +247 -0
- package/dist/chunk-F2J6IQ6I.js.map +1 -0
- package/dist/chunk-F3O7CELI.js +23 -0
- package/dist/chunk-F3O7CELI.js.map +1 -0
- package/dist/chunk-F4IITPGX.js +221 -0
- package/dist/chunk-F4IITPGX.js.map +1 -0
- package/dist/chunk-FD6VC2NA.js +66 -0
- package/dist/chunk-FD6VC2NA.js.map +1 -0
- package/dist/chunk-FRRRWAHO.js +14 -0
- package/dist/chunk-FRRRWAHO.js.map +1 -0
- package/dist/chunk-HCKAGLLB.js +17 -0
- package/dist/chunk-HCKAGLLB.js.map +1 -0
- package/dist/chunk-HVC7FG6B.js +191 -0
- package/dist/chunk-HVC7FG6B.js.map +1 -0
- package/dist/chunk-HXFVOR7Z.js +496 -0
- package/dist/chunk-HXFVOR7Z.js.map +1 -0
- package/dist/chunk-IJWYS2PF.js +122 -0
- package/dist/chunk-IJWYS2PF.js.map +1 -0
- package/dist/chunk-INCHXAFK.js +1395 -0
- package/dist/chunk-INCHXAFK.js.map +1 -0
- package/dist/chunk-JT6BRGQM.js +1 -0
- package/dist/chunk-JT6BRGQM.js.map +1 -0
- package/dist/chunk-L6PMAEMB.js +115 -0
- package/dist/chunk-L6PMAEMB.js.map +1 -0
- package/dist/chunk-LOUGW6MU.js +126 -0
- package/dist/chunk-LOUGW6MU.js.map +1 -0
- package/dist/chunk-LYPZPE53.js +129 -0
- package/dist/chunk-LYPZPE53.js.map +1 -0
- package/dist/chunk-NNCCN7JP.js +186 -0
- package/dist/chunk-NNCCN7JP.js.map +1 -0
- package/dist/chunk-PBC3MZUL.js +212 -0
- package/dist/chunk-PBC3MZUL.js.map +1 -0
- package/dist/chunk-R4ADP2DC.js +20 -0
- package/dist/chunk-R4ADP2DC.js.map +1 -0
- package/dist/chunk-RHN4Y6VS.js +44 -0
- package/dist/chunk-RHN4Y6VS.js.map +1 -0
- package/dist/chunk-SDJNYPYK.js +770 -0
- package/dist/chunk-SDJNYPYK.js.map +1 -0
- package/dist/chunk-UGNTCOVR.js +28 -0
- package/dist/chunk-UGNTCOVR.js.map +1 -0
- package/dist/chunk-VC2PCK2S.js +31 -0
- package/dist/chunk-VC2PCK2S.js.map +1 -0
- package/dist/chunk-VF5YDZJC.js +305 -0
- package/dist/chunk-VF5YDZJC.js.map +1 -0
- package/dist/chunk-VISRDVTK.js +675 -0
- package/dist/chunk-VISRDVTK.js.map +1 -0
- package/dist/chunk-W6O3LVBY.js +102 -0
- package/dist/chunk-W6O3LVBY.js.map +1 -0
- package/dist/chunk-WFEAKJLR.js +47 -0
- package/dist/chunk-WFEAKJLR.js.map +1 -0
- package/dist/chunk-XIEY2OF4.js +67 -0
- package/dist/chunk-XIEY2OF4.js.map +1 -0
- package/dist/chunk-XITLHDG3.js +37 -0
- package/dist/chunk-XITLHDG3.js.map +1 -0
- package/dist/chunk-XMWPYZWZ.js +61 -0
- package/dist/chunk-XMWPYZWZ.js.map +1 -0
- package/dist/chunk-XUP6CNOM.js +34 -0
- package/dist/chunk-XUP6CNOM.js.map +1 -0
- package/dist/chunk-YABTQZDJ.js +25 -0
- package/dist/chunk-YABTQZDJ.js.map +1 -0
- package/dist/chunk-YMHVRBUU.js +199 -0
- package/dist/chunk-YMHVRBUU.js.map +1 -0
- package/dist/chunk-YMJ7BRKU.js +510 -0
- package/dist/chunk-YMJ7BRKU.js.map +1 -0
- package/dist/chunk-ZC3XWU7B.js +28 -0
- package/dist/chunk-ZC3XWU7B.js.map +1 -0
- package/dist/chunk-ZHMTD5KV.js +90 -0
- package/dist/chunk-ZHMTD5KV.js.map +1 -0
- package/dist/chunk-ZWZDLOE7.js +160 -0
- package/dist/chunk-ZWZDLOE7.js.map +1 -0
- package/dist/db-package/db/local-first-sqlite-adapter.d.ts +432 -0
- package/dist/db-package/db/local-first-sqlite-adapter.js +7 -0
- package/dist/db-package/db/local-first-sqlite-adapter.js.map +1 -0
- package/dist/db-package/index.d.ts +7 -0
- package/dist/db-package/index.js +16 -0
- package/dist/db-package/index.js.map +1 -0
- package/dist/db-package/migration/aggregator.d.ts +86 -0
- package/dist/db-package/migration/aggregator.js +7 -0
- package/dist/db-package/migration/aggregator.js.map +1 -0
- package/dist/db-package/migration/index.d.ts +3 -0
- package/dist/db-package/migration/index.js +8 -0
- package/dist/db-package/migration/index.js.map +1 -0
- package/dist/engine.d.ts +205 -0
- package/dist/engine.js +20 -0
- package/dist/engine.js.map +1 -0
- package/dist/entitlements/index.d.ts +313 -0
- package/dist/entitlements/index.js +23 -0
- package/dist/entitlements/index.js.map +1 -0
- package/dist/execution/chat.d.ts +7 -0
- package/dist/execution/chat.js +7 -0
- package/dist/execution/chat.js.map +1 -0
- package/dist/execution/index.d.ts +342 -0
- package/dist/execution/index.js +66 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/tool-agent.d.ts +7 -0
- package/dist/execution/tool-agent.js +8 -0
- package/dist/execution/tool-agent.js.map +1 -0
- package/dist/extensions/index.d.ts +172 -0
- package/dist/extensions/index.js +95 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/health/index.d.ts +35 -0
- package/dist/health/index.js +7 -0
- package/dist/health/index.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.js +161 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle/index.d.ts +133 -0
- package/dist/lifecycle/index.js +13 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/lifecycle-engine/backend-migration.d.ts +2 -0
- package/dist/lifecycle-engine/backend-migration.js +11 -0
- package/dist/lifecycle-engine/backend-migration.js.map +1 -0
- package/dist/lifecycle-engine/baseline.d.ts +2 -0
- package/dist/lifecycle-engine/baseline.js +9 -0
- package/dist/lifecycle-engine/baseline.js.map +1 -0
- package/dist/lifecycle-engine/index.d.ts +1497 -0
- package/dist/lifecycle-engine/index.js +41 -0
- package/dist/lifecycle-engine/index.js.map +1 -0
- package/dist/lifecycle-engine/platform/artifacts.d.ts +4 -0
- package/dist/lifecycle-engine/platform/artifacts.js +7 -0
- package/dist/lifecycle-engine/platform/artifacts.js.map +1 -0
- package/dist/lifecycle-engine/platform/control-plane.d.ts +12 -0
- package/dist/lifecycle-engine/platform/control-plane.js +2 -0
- package/dist/lifecycle-engine/platform/control-plane.js.map +1 -0
- package/dist/lifecycle-engine/platform/database-router.d.ts +118 -0
- package/dist/lifecycle-engine/platform/database-router.js +7 -0
- package/dist/lifecycle-engine/platform/database-router.js.map +1 -0
- package/dist/lifecycle-engine/platform/deployment-placements.d.ts +464 -0
- package/dist/lifecycle-engine/platform/deployment-placements.js +16 -0
- package/dist/lifecycle-engine/platform/deployment-placements.js.map +1 -0
- package/dist/lifecycle-engine/platform/deployment.d.ts +4 -0
- package/dist/lifecycle-engine/platform/deployment.js +17 -0
- package/dist/lifecycle-engine/platform/deployment.js.map +1 -0
- package/dist/lifecycle-engine/platform/index.d.ts +737 -0
- package/dist/lifecycle-engine/platform/index.js +60 -0
- package/dist/lifecycle-engine/platform/index.js.map +1 -0
- package/dist/lifecycle-engine/platform/runtime.d.ts +80 -0
- package/dist/lifecycle-engine/platform/runtime.js +11 -0
- package/dist/lifecycle-engine/platform/runtime.js.map +1 -0
- package/dist/lifecycle-engine/platform/site-publication.d.ts +102 -0
- package/dist/lifecycle-engine/platform/site-publication.js +7 -0
- package/dist/lifecycle-engine/platform/site-publication.js.map +1 -0
- package/dist/lifecycle-engine/platform/user-directory.d.ts +139 -0
- package/dist/lifecycle-engine/platform/user-directory.js +13 -0
- package/dist/lifecycle-engine/platform/user-directory.js.map +1 -0
- package/dist/mcp.d.ts +92 -0
- package/dist/mcp.js +10 -0
- package/dist/mcp.js.map +1 -0
- package/dist/middleware/auth.d.ts +118 -0
- package/dist/middleware/auth.js +7 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +35 -0
- package/dist/middleware/error-handler.js +7 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/module-guard.d.ts +33 -0
- package/dist/middleware/module-guard.js +7 -0
- package/dist/middleware/module-guard.js.map +1 -0
- package/dist/platform-admin/index.d.ts +37 -0
- package/dist/platform-admin/index.js +11 -0
- package/dist/platform-admin/index.js.map +1 -0
- package/dist/platform-admin/store.d.ts +346 -0
- package/dist/platform-admin/store.js +7 -0
- package/dist/platform-admin/store.js.map +1 -0
- package/dist/plugin-data/annotations.d.ts +6 -0
- package/dist/plugin-data/annotations.js +12 -0
- package/dist/plugin-data/annotations.js.map +1 -0
- package/dist/plugin-data/atomic-context.d.ts +41 -0
- package/dist/plugin-data/atomic-context.js +9 -0
- package/dist/plugin-data/atomic-context.js.map +1 -0
- package/dist/plugin-data/atomic.d.ts +6 -0
- package/dist/plugin-data/atomic.js +26 -0
- package/dist/plugin-data/atomic.js.map +1 -0
- package/dist/plugin-data/audit.d.ts +6 -0
- package/dist/plugin-data/audit.js +12 -0
- package/dist/plugin-data/audit.js.map +1 -0
- package/dist/plugin-data/commands.d.ts +6 -0
- package/dist/plugin-data/commands.js +8 -0
- package/dist/plugin-data/commands.js.map +1 -0
- package/dist/plugin-data/composite.d.ts +6 -0
- package/dist/plugin-data/composite.js +8 -0
- package/dist/plugin-data/composite.js.map +1 -0
- package/dist/plugin-data/delivery.d.ts +6 -0
- package/dist/plugin-data/delivery.js +16 -0
- package/dist/plugin-data/delivery.js.map +1 -0
- package/dist/plugin-data/index.d.ts +2798 -0
- package/dist/plugin-data/index.js +102 -0
- package/dist/plugin-data/index.js.map +1 -0
- package/dist/plugin-data/json-documents.d.ts +6 -0
- package/dist/plugin-data/json-documents.js +16 -0
- package/dist/plugin-data/json-documents.js.map +1 -0
- package/dist/plugin-data/outbox.d.ts +6 -0
- package/dist/plugin-data/outbox.js +16 -0
- package/dist/plugin-data/outbox.js.map +1 -0
- package/dist/plugin-data/scoped-records.d.ts +6 -0
- package/dist/plugin-data/scoped-records.js +10 -0
- package/dist/plugin-data/scoped-records.js.map +1 -0
- package/dist/plugin-sdk.d.ts +41 -0
- package/dist/plugin-sdk.js +10 -0
- package/dist/plugin-sdk.js.map +1 -0
- package/dist/sql-lifecycle/index.d.ts +138 -0
- package/dist/sql-lifecycle/index.js +167 -0
- package/dist/sql-lifecycle/index.js.map +1 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.js +13 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/s3-compatible.d.ts +139 -0
- package/dist/storage/s3-compatible.js +11 -0
- package/dist/storage/s3-compatible.js.map +1 -0
- package/dist/tenant.d.ts +108 -0
- package/dist/tenant.js +9 -0
- package/dist/tenant.js.map +1 -0
- package/dist/workspace-context.d.ts +119 -0
- package/dist/workspace-context.js +9 -0
- package/dist/workspace-context.js.map +1 -0
- package/docs/api.md +30560 -0
- package/docs/db/README.md +49 -0
- package/docs/db/docs/api.md +1613 -0
- package/docs/db/docs/guide.md +47 -0
- package/docs/entitlements.md +60 -0
- package/docs/guide.md +92 -0
- package/docs/index.md +57 -0
- package/docs/ja/db/README.md +46 -0
- package/docs/ja/db/docs/guide.md +53 -0
- package/docs/ja/guide.md +46 -0
- package/docs/ja/lifecycle/README.md +46 -0
- package/docs/ja/lifecycle/docs/guide.md +45 -0
- package/docs/ja/storage/README.md +46 -0
- package/docs/ja/storage/docs/guide.md +43 -0
- package/docs/lifecycle/README.md +49 -0
- package/docs/lifecycle/docs/api.md +3770 -0
- package/docs/lifecycle/docs/baseline.md +50 -0
- package/docs/lifecycle/docs/guide.md +47 -0
- package/docs/storage/README.md +49 -0
- package/docs/storage/docs/api.md +470 -0
- package/docs/storage/docs/guide.md +47 -0
- package/package.json +354 -4
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Db ownership and host boundaries"
|
|
3
|
+
description: "Data Contract ownership, JSON document validation, schema composition and SQLite adapters. This capability belongs to @alneas/eaos-server; it is not a separate npm package."
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Db ownership and host boundaries
|
|
12
|
+
|
|
13
|
+
## Motivation
|
|
14
|
+
|
|
15
|
+
Data Contract ownership, JSON document validation, schema composition and SQLite adapters. This capability belongs to `@alneas/eaos-server`; it is not a separate npm package.
|
|
16
|
+
|
|
17
|
+
## Architectural Diagram
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
flowchart LR
|
|
21
|
+
Host[Trusted host] --> Adapter[Scoped Server adapter]
|
|
22
|
+
Adapter --> Store[Host-owned durable provider]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Public import
|
|
26
|
+
|
|
27
|
+
Install the package; the subpath below is an import target, not a separate package. Registry installation requires a published EAOS release; before publication use the owning workspace's checksum-verified build artifact.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
bun add @alneas/eaos-server
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
import { LocalFirstSqliteAdapter } from '@alneas/eaos-server/db/local-first-sqlite-adapter'
|
|
35
|
+
|
|
36
|
+
export type LocalDatabaseOptions = ConstructorParameters<typeof LocalFirstSqliteAdapter>[0]
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Server runtime only. The host supplies the database connection and independently enforces tenant/resource authorization.
|
|
40
|
+
|
|
41
|
+
## Trade-offs & Decisions
|
|
42
|
+
|
|
43
|
+
`LocalFirstSqliteAdapter` manages a local cache and Outbox. Failed begin/commit operations are not success; pull failures attempt rollback and report uncertainty. Null filters use `IS NULL`; zero limits and offset-only pagination retain their meaning. Invalid pagination and unsupported filters are rejected.
|
|
44
|
+
|
|
45
|
+
Bind the SQLite driver and upstream to the same authorization scope and separate local tenant databases. An inserted default tenant ID is not RLS or runtime authorization. Durable business state, CAS and final authorization remain host-owned. Local enqueue and external delivery are not an exactly-once transaction.
|
|
46
|
+
|
|
47
|
+
The host owns verified identity, tenant boundaries, credentials and real provider adoption. Package builds and tests never apply production changes or activate tenants. Review the [API reference](api.md) before binding the host.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Live plugin contracts and metering"
|
|
3
|
+
description: "Keep portable declarations separate from trusted host execution, current access checks and durable effects."
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Live plugin contracts and metering
|
|
12
|
+
|
|
13
|
+
## Motivation
|
|
14
|
+
|
|
15
|
+
Keep portable declarations separate from trusted host execution, current access checks and durable effects.
|
|
16
|
+
|
|
17
|
+
## Architectural Diagram
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
flowchart LR
|
|
21
|
+
Contract[Public contract] --> Host[Verified host scope]
|
|
22
|
+
Host --> Operation[Explicit runtime operation]
|
|
23
|
+
Operation --> Validation[Result and permission verification]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Public import
|
|
27
|
+
|
|
28
|
+
Install the package; the subpath below is an import target, not a separate package. Registry installation requires a published EAOS release; before publication use the owning workspace's checksum-verified build artifact.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
bun add @alneas/eaos-server
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
import { PluginEntitlementRuntime } from '@alneas/eaos-server/entitlements'
|
|
36
|
+
|
|
37
|
+
export function bindEntitlements(options: ConstructorParameters<typeof PluginEntitlementRuntime>[0]) {
|
|
38
|
+
return new PluginEntitlementRuntime(options)
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Server runtime only. Supply the live contract loader, lifecycle admission and a shared durable atomic repository; importing does not create the control tables.
|
|
43
|
+
|
|
44
|
+
## Trade-offs & Decisions
|
|
45
|
+
|
|
46
|
+
`@alneas/eaos-server/entitlements` exports `PluginEntitlementRuntime`, `createPluginEntitlementGuard`, `createPluginAssetRouter`, `tenantEntitlementContract` and `createSqlTenantEntitlementLoader`. Install the control contract through reviewed Lifecycle operations; importing it never creates a table. The SQL loader reads `eaos_tenant_entitlements` from the primary control database. Host administration owns grants, expiry and CAS updates; the framework does not issue payments or subscriptions.
|
|
47
|
+
|
|
48
|
+
Construct a runtime with the loader, current Lifecycle admission callback and a shared `AtomicRepository`. Every admitted metered attempt reserves one unit in a UTC calendar-month bucket and appends the existing durable atomic audit chain in the same transaction. A failed audit write rolls back the reservation. A handler failure still counts its admitted attempt. Retries count separately; business command idempotency does not deduplicate admission. Discovery and asset URL requests do not consume execution units. Repository CAS conflicts fail closed; callers must not blindly retry a business operation.
|
|
49
|
+
|
|
50
|
+
Pass the runtime as `createApp({ entitlements, resolveEntitlementPrincipal })`. An explicitly declared policy cannot be bypassed by disabling the legacy module guard or using development mode. A missing runtime returns 503 on HTTP; unmet subscriptions/addons/quotas return 402; a foreign Corporate tenant receives 404 before module checks. Existing manifests without `entitlement` retain their previous authorization behavior.
|
|
51
|
+
|
|
52
|
+
MCP discovery filters current contracts. Both execute and JSON-RPC calls check the contract before constructing dependencies and reserve quota immediately before the handler. JSON-RPC errors contain the HTTP-equivalent status in `error.data.status`.
|
|
53
|
+
|
|
54
|
+
Jobs and verified webhooks must use the same runtime's `run(principal, pluginId, rule, operation, callback)` in addition to their host authentication/resource checks. Never derive the principal or policy from a job payload. Existing direct service method calls do not automatically gain entitlement checks.
|
|
55
|
+
|
|
56
|
+
`createSdkPluginRouter` in `@alneas/eaos-server/plugin-sdk` mounts a Core `definePlugin` definition. It requires a principal resolver, a current lifecycle/resource authorization callback and a scoped context factory. Identity cannot be overridden by the factory or request body. JSON bodies are bounded to 1 MiB; route-specific input validation remains the plugin's responsibility. Browser hosts still supply their established CSRF/Origin middleware.
|
|
57
|
+
|
|
58
|
+
The asset router accepts only a trusted catalog and signing callback. It rechecks admission after signing, returns `private, no-store` metadata and limits the requested lifetime to 60 seconds. The signing adapter must enforce that lifetime and private storage. A copied signed URL can remain usable until expiry, and authorized browsers can read downloaded bytes; this is access control, not DRM. WASM and ONNX assets must not also be served from a public directory.
|
|
59
|
+
|
|
60
|
+
For React, merge current runtime decisions into the authenticated context's `pluginAccess` map and refresh it on contract/session changes. Omit foreign Corporate plugins completely. UI gates never replace backend admission.
|
package/docs/guide.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Server boundaries"
|
|
3
|
+
description: "Hono/MCP, identity integration, durable CAS/audit/Outbox, lifecycle, database and scoped storage implementations. Business plugins, customer data, credentials, actual infrastructure settings and operator receipts remain outside this public package."
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Server boundaries
|
|
12
|
+
|
|
13
|
+
## Motivation
|
|
14
|
+
|
|
15
|
+
Hono/MCP, identity integration, durable CAS/audit/Outbox, lifecycle, database and scoped storage implementations. Business plugins, customer data, credentials, actual infrastructure settings and operator receipts remain outside this public package.
|
|
16
|
+
|
|
17
|
+
## Architectural Diagram
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
flowchart LR
|
|
21
|
+
Contract[Public contract] --> Host[Verified host bindings]
|
|
22
|
+
Host --> Runtime[Scoped runtime operation]
|
|
23
|
+
Runtime --> Evidence[Durable result and audit]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Public import
|
|
27
|
+
|
|
28
|
+
Install the package; the subpath below is an import target, not a separate package. Registry installation requires a published EAOS release; before publication use the owning workspace's checksum-verified build artifact.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
bun add @alneas/eaos-server
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
import { createSdkPluginRouter } from '@alneas/eaos-server/plugin-sdk'
|
|
36
|
+
|
|
37
|
+
export const bindSdkRouter = createSdkPluginRouter
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Server runtime only. Install the package's Hono dependency and provide verified identity, scoped context and current authorization.
|
|
41
|
+
|
|
42
|
+
## Trade-offs & Decisions
|
|
43
|
+
|
|
44
|
+
The host supplies verified identity and current lifecycle/resource authorization. CAS rejects stale revisions; durable host stores retain audit and Outbox. Provider connections and secrets are injected through trusted ports.
|
|
45
|
+
|
|
46
|
+
Code installation, database/infrastructure application and tenant activation are separate operations. Import/build/test/install do not perform production migrations or infrastructure updates. Before registry publication, build and test checksum-pinned tarballs in isolated consumers instead of linking sibling source.
|
|
47
|
+
|
|
48
|
+
See [live entitlements](entitlements.md), [database boundaries](db/docs/guide.md), [lifecycle](lifecycle/docs/guide.md) and [storage](storage/docs/guide.md).
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
## Shared model execution
|
|
52
|
+
|
|
53
|
+
`@alneas/eaos-server/execution/chat` owns generic chat orchestration and
|
|
54
|
+
`@alneas/eaos-server/execution/tool-agent` owns bounded read-tool orchestration
|
|
55
|
+
and unexecuted write handoffs. Appkit Core 0.2.0 owns HTTP/SSE and Action execution.
|
|
56
|
+
Hosts retain model endpoints, credentials, tool registration, live permission,
|
|
57
|
+
model bindings, budgets and durable accounting. Domain prompts, extraction schemas,
|
|
58
|
+
account mappings and the proposal/approval/save composition belong to plugins.
|
|
59
|
+
|
|
60
|
+
The built-in LiteLLM worker uses this same chat API with the existing endpoint,
|
|
61
|
+
model and fetch options. `litellmHeaders` supplies Host credentials; `chat` supplies
|
|
62
|
+
shared policies and adapters. Injected executors still run first. Goose/Hermes remain
|
|
63
|
+
process adapters. Worker text output limits remain distinct from serialized stream
|
|
64
|
+
event limits. Optional `runTask` cancellation applies to built-in chat; existing
|
|
65
|
+
process and injected-executor cancellation contracts are unchanged.
|
|
66
|
+
|
|
67
|
+
LiteLLM requests SSE (`stream: true`). A custom JSON-only endpoint must supply a
|
|
68
|
+
compatible `AIChatAdapter` or an injected executor; no parallel provider parser is
|
|
69
|
+
provided. A configured model registry requires explicit `modelAdapters` bindings
|
|
70
|
+
for its model IDs. Host parameters cannot replace `model`, `messages`, `tools` or
|
|
71
|
+
`stream`. Unknown usage is passed to the existing accounting port for reconciliation;
|
|
72
|
+
Appkit's OpenAI-compatible adapter does not expose provider SSE token-usage fields.
|
|
73
|
+
This integration does not estimate them or silently record zero.
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
import { createChatClient, type ChatClientOptions } from '@alneas/eaos-server/execution/chat';
|
|
77
|
+
import { createToolAgent, type ToolAgentOptions } from '@alneas/eaos-server/execution/tool-agent';
|
|
78
|
+
|
|
79
|
+
export function connectChat(options: ChatClientOptions) {
|
|
80
|
+
return createChatClient(options);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function connectReadAgent(options: ToolAgentOptions) {
|
|
84
|
+
return createToolAgent(options);
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Read-tool descriptors and retained tool results are reauthorized before model
|
|
89
|
+
disclosure. Write requests remain handoffs to the existing Action/Proposal approval
|
|
90
|
+
path. Provider errors, incomplete streams, cancellation, policy revocation and
|
|
91
|
+
oversized output reject before an authorized response is returned. A transport
|
|
92
|
+
fixture integration test is distinct from a live model/provider acceptance test.
|
package/docs/index.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Server execution and persistence"
|
|
3
|
+
description: "Host developers use Server to compose HTTP/MCP, lifecycle and durable data services."
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos","explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<!-- Generated from packages/server/README.md; edit the README and run docs:readmes:prepare. -->
|
|
12
|
+
|
|
13
|
+
# Server execution and persistence
|
|
14
|
+
|
|
15
|
+
[](https://www.typescriptlang.org/docs/) [](https://nodejs.org/en/about/previous-releases) [](https://hono.dev/docs/)
|
|
16
|
+
|
|
17
|
+
## Elevator Pitch
|
|
18
|
+
|
|
19
|
+
Host developers use Server to compose HTTP/MCP, lifecycle and durable data services.
|
|
20
|
+
|
|
21
|
+
## Why & Value
|
|
22
|
+
|
|
23
|
+
Shared implementations keep authorization, CAS, audit and Outbox consistent. The host retains provider connections, current identity and deployment policy. This MIT package owns its implementation and declarations in the public monorepo.
|
|
24
|
+
|
|
25
|
+
## Key Highlights
|
|
26
|
+
|
|
27
|
+
- Hono and MCP integration
|
|
28
|
+
- Reviewed lifecycle plans
|
|
29
|
+
- Durable CAS and audit
|
|
30
|
+
- Scoped database and storage
|
|
31
|
+
|
|
32
|
+
## Quickstart
|
|
33
|
+
|
|
34
|
+
This checkout prepares version 0.2.0; version 0.1.0 is already published. Until 0.2.0 is published, install the checksum-pinned candidate tarball. The command below applies after that release.
|
|
35
|
+
|
|
36
|
+
### Public import
|
|
37
|
+
|
|
38
|
+
Use Node.js 24 or later and the required Appkit Core 0.2.0 peer. The canonicalization example is pure and needs no database connection or credentials. Server execution later requires host-owned identity, authorization and persistence bindings. The subpath is an import target, not a separately installed package.
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
bun add @alneas/eaos-server@0.2.0 @alneas/appkit-core@0.2.0
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
import { canonical } from '@alneas/eaos-server/lifecycle-engine'
|
|
46
|
+
|
|
47
|
+
console.log(canonical({ format: 1, operation: 'inspect' }))
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Next Steps
|
|
51
|
+
|
|
52
|
+
- [Change history](https://github.com/dataarthub/eaos/blob/main/packages/server/CHANGELOG.md)
|
|
53
|
+
- [Architecture and boundaries](guide.md)
|
|
54
|
+
- [API reference](api.md)
|
|
55
|
+
- [EAOS composition](https://tech-docs.alneas.com/eaos-workspace/architecture/)
|
|
56
|
+
|
|
57
|
+
Questions and issue reports in English are welcome in [GitHub Issues](https://github.com/dataarthub/eaos/issues). Private vulnerability reports can use [GitHub private reporting](https://github.com/dataarthub/eaos/security/advisories/new).
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "eaos-db"
|
|
3
|
+
description: "EAOSを組み込む開発者向けに、所有する公開機能と型付きの利用入口を提供します。"
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# eaos-db
|
|
12
|
+
|
|
13
|
+
## 概要
|
|
14
|
+
|
|
15
|
+
EAOSを組み込む開発者向けに、所有する公開機能と型付きの利用入口を提供します。
|
|
16
|
+
|
|
17
|
+
## 目的と利点
|
|
18
|
+
|
|
19
|
+
共通の実装を再利用し、業務機能とホストの接続・認可を分離します。実装の正本は公開Monorepoにあり、本番の設定や運用証拠は含めません。コードの導入、スキーマ適用、組織への有効化は別操作です。
|
|
20
|
+
|
|
21
|
+
## 主な機能
|
|
22
|
+
|
|
23
|
+
- 公開パッケージの型付きAPI
|
|
24
|
+
- 明示的なホスト接続と現在の認可
|
|
25
|
+
- パッケージ単位の検証と配布
|
|
26
|
+
|
|
27
|
+
## クイックスタート
|
|
28
|
+
|
|
29
|
+
registryからの導入には公開済みの版が必要です。公開前はworkspaceが作成・検証したSHA固定tarballを使用してください。パッケージのsubpath自体をbun addの引数にはしません。
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bun add @alneas/eaos-server
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
import * as capability from '@alneas/eaos-server/db'
|
|
37
|
+
|
|
38
|
+
console.log(Object.keys(capability))
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 次の手順
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
- [Architecture and host boundaries](../../db/docs/guide.md)
|
|
45
|
+
- [API reference](../../db/docs/api.md)
|
|
46
|
+
- [Owning package](../../../README.md)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "eaos-db 開発と境界"
|
|
3
|
+
description: "公開契約とホストの実行責任を分け、同じ機能の重複や権限の取り違えを防ぎます。"
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# eaos-db 開発と境界
|
|
12
|
+
|
|
13
|
+
## 背景と目的
|
|
14
|
+
|
|
15
|
+
公開契約とホストの実行責任を分け、同じ機能の重複や権限の取り違えを防ぎます。
|
|
16
|
+
|
|
17
|
+
## 構成図
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
flowchart LR
|
|
21
|
+
Host[Trusted host] --> Adapter[Scoped Server adapter]
|
|
22
|
+
Adapter --> Store[Host-owned durable provider]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## トレードオフと判断
|
|
26
|
+
|
|
27
|
+
### 所有範囲
|
|
28
|
+
|
|
29
|
+
DataContract・JSON文書検証・schema集約・SQLite接続。業務plugin・業務物理schema・顧客データ・秘密値・実環境設定・運用receiptは含めません。
|
|
30
|
+
|
|
31
|
+
### 開発
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
EAOS依存がまだ未公開の場合は、workspaceのビルド入口を使います。先行パッケージをtgzにして隔離環境へ導入し、型生成・テスト・packの成功後だけ最新receiptを更新します。
|
|
36
|
+
|
|
37
|
+
### 認可・永続化
|
|
38
|
+
|
|
39
|
+
tenant/user/rolesは検証済みホストから渡します。Lifecycleの有効状態とresource権限を実行時に再確認します。CASは古いrevisionを拒否し、監査/Outboxはホストがdurableなstoreへ保存します。SQL接続・provider資格情報はホストから注入します。
|
|
40
|
+
|
|
41
|
+
### 配布と適用
|
|
42
|
+
|
|
43
|
+
コードの導入、DB/infra適用、tenant有効化は別操作です。build/test/installは本番migrationやPulumi updateを実行しません。共通ドキュメントサイトの原稿はこのrepoのdocsが正本です。
|
|
44
|
+
|
|
45
|
+
### SQLiteの同期と検索
|
|
46
|
+
|
|
47
|
+
`LocalFirstSqliteAdapter` はローカルキャッシュとOutboxを扱います。`pullChanges` のBEGIN/COMMIT失敗は成功扱いせず、同期失敗ではROLLBACKを試行し、確定できなければエラーを返します。`NULL` は `IS NULL` で検索し、`limit:0` とoffsetのみの指定も保持します。負数・小数・文字列のページ指定、未対応のfilter演算子は明示的に拒否します。
|
|
48
|
+
|
|
49
|
+
SQLite driverとupstreamはホストが同じ認可範囲へ束縛し、ローカルDBはtenantごとに分離してください。`tenantId` による挿入時の既定値は、共有SQLiteに対するRLSや実行時認可を提供しません。業務の正本・CAS・最終認可にはホストのdurable repositoryを利用します。Outboxのローカル変更・enqueue全体や外部処理のexactly-onceを保証する部品ではありません。
|
|
50
|
+
|
|
51
|
+
### 検証
|
|
52
|
+
|
|
53
|
+
直接テストでは契約の所有権・依存循環・版範囲・移行順序と実SQLiteのCRUD、offline再試行、拒否時の復元、SCNのロールバック、listener終了を確認します。DDL生成は文字列検証であり、本番Oracle/PostgresのRLS/VPDや接続試験ではありません。
|
package/docs/ja/guide.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "eaos-server 開発と境界"
|
|
3
|
+
description: "公開契約とホストの実行責任を分け、同じ機能の重複や権限の取り違えを防ぎます。"
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# eaos-server 開発と境界
|
|
12
|
+
|
|
13
|
+
## 背景と目的
|
|
14
|
+
|
|
15
|
+
公開契約とホストの実行責任を分け、同じ機能の重複や権限の取り違えを防ぎます。
|
|
16
|
+
|
|
17
|
+
## 構成図
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
flowchart LR
|
|
21
|
+
Contract[Public contract] --> Host[Verified host bindings]
|
|
22
|
+
Host --> Runtime[Scoped runtime operation]
|
|
23
|
+
Runtime --> Evidence[Durable result and audit]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## トレードオフと判断
|
|
27
|
+
|
|
28
|
+
### 所有範囲
|
|
29
|
+
|
|
30
|
+
Hono/MCP・認証接続・永続CAS/監査/Outbox・job実行。業務plugin・業務物理schema・顧客データ・秘密値・実環境設定・運用receiptは含めません。
|
|
31
|
+
|
|
32
|
+
### 開発
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
EAOS依存がまだ未公開の場合は、workspaceのビルド入口を使います。先行パッケージをtgzにして隔離環境へ導入し、型生成・テスト・packの成功後だけ最新receiptを更新します。
|
|
37
|
+
|
|
38
|
+
### 認可・永続化
|
|
39
|
+
|
|
40
|
+
tenant/user/rolesは検証済みホストから渡します。Lifecycleの有効状態とresource権限を実行時に再確認します。CASは古いrevisionを拒否し、監査/Outboxはホストがdurableなstoreへ保存します。SQL接続・provider資格情報はホストから注入します。
|
|
41
|
+
|
|
42
|
+
### 配布と適用
|
|
43
|
+
|
|
44
|
+
コードの導入、DB/infra適用、tenant有効化は別操作です。build/test/installは本番migrationやPulumi updateを実行しません。共通ドキュメントサイトの原稿はこのrepoのdocsが正本です。
|
|
45
|
+
|
|
46
|
+
See [Live HTTP/MCP subscription admission, atomic monthly metering, private asset signing and SDK context injection](../entitlements.md) for the architecture additions and their host boundaries.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "eaos-lifecycle"
|
|
3
|
+
description: "EAOSを組み込む開発者向けに、所有する公開機能と型付きの利用入口を提供します。"
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# eaos-lifecycle
|
|
12
|
+
|
|
13
|
+
## 概要
|
|
14
|
+
|
|
15
|
+
EAOSを組み込む開発者向けに、所有する公開機能と型付きの利用入口を提供します。
|
|
16
|
+
|
|
17
|
+
## 目的と利点
|
|
18
|
+
|
|
19
|
+
共通の実装を再利用し、業務機能とホストの接続・認可を分離します。実装の正本は公開Monorepoにあり、本番の設定や運用証拠は含めません。コードの導入、スキーマ適用、組織への有効化は別操作です。
|
|
20
|
+
|
|
21
|
+
## 主な機能
|
|
22
|
+
|
|
23
|
+
- 公開パッケージの型付きAPI
|
|
24
|
+
- 明示的なホスト接続と現在の認可
|
|
25
|
+
- パッケージ単位の検証と配布
|
|
26
|
+
|
|
27
|
+
## クイックスタート
|
|
28
|
+
|
|
29
|
+
registryからの導入には公開済みの版が必要です。公開前はworkspaceが作成・検証したSHA固定tarballを使用してください。パッケージのsubpath自体をbun addの引数にはしません。
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bun add @alneas/eaos-server
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
import * as capability from '@alneas/eaos-server/lifecycle-engine'
|
|
37
|
+
|
|
38
|
+
console.log(Object.keys(capability))
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 次の手順
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
- [Architecture and host boundaries](../../lifecycle/docs/guide.md)
|
|
45
|
+
- [API reference](../../lifecycle/docs/api.md)
|
|
46
|
+
- [Owning package](../../../README.md)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "eaos-lifecycle 開発と境界"
|
|
3
|
+
description: "公開契約とホストの実行責任を分け、同じ機能の重複や権限の取り違えを防ぎます。"
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# eaos-lifecycle 開発と境界
|
|
12
|
+
|
|
13
|
+
## 背景と目的
|
|
14
|
+
|
|
15
|
+
公開契約とホストの実行責任を分け、同じ機能の重複や権限の取り違えを防ぎます。
|
|
16
|
+
|
|
17
|
+
## 構成図
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
flowchart LR
|
|
21
|
+
Host[Trusted host] --> Adapter[Scoped Server adapter]
|
|
22
|
+
Adapter --> Store[Host-owned durable provider]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## トレードオフと判断
|
|
26
|
+
|
|
27
|
+
### 所有範囲
|
|
28
|
+
|
|
29
|
+
導入/更新/有効化・migration履歴・配置と完了記録。業務plugin・業務物理schema・顧客データ・秘密値・実環境設定・運用receiptは含めません。
|
|
30
|
+
|
|
31
|
+
### 開発
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
EAOS依存がまだ未公開の場合は、workspaceのビルド入口を使います。先行パッケージをtgzにして隔離環境へ導入し、型生成・テスト・packの成功後だけ最新receiptを更新します。
|
|
36
|
+
|
|
37
|
+
### 認可・永続化
|
|
38
|
+
|
|
39
|
+
tenant/user/rolesは検証済みホストから渡します。Lifecycleの有効状態とresource権限を実行時に再確認します。CASは古いrevisionを拒否し、監査/Outboxはホストがdurableなstoreへ保存します。SQL接続・provider資格情報はホストから注入します。
|
|
40
|
+
|
|
41
|
+
### 配布と適用
|
|
42
|
+
|
|
43
|
+
コードの導入、DB/infra適用、tenant有効化は別操作です。build/test/installは本番migrationやPulumi updateを実行しません。共通ドキュメントサイトの原稿はこのrepoのdocsが正本です。
|
|
44
|
+
|
|
45
|
+
See [Integrity-pinned schema baseline descriptors and a locked, non-DDL ledger rebase preserving historical evidence](../../../lifecycle/docs/baseline.md) for the architecture additions and their host boundaries.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "eaos-storage"
|
|
3
|
+
description: "EAOSを組み込む開発者向けに、所有する公開機能と型付きの利用入口を提供します。"
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# eaos-storage
|
|
12
|
+
|
|
13
|
+
## 概要
|
|
14
|
+
|
|
15
|
+
EAOSを組み込む開発者向けに、所有する公開機能と型付きの利用入口を提供します。
|
|
16
|
+
|
|
17
|
+
## 目的と利点
|
|
18
|
+
|
|
19
|
+
共通の実装を再利用し、業務機能とホストの接続・認可を分離します。実装の正本は公開Monorepoにあり、本番の設定や運用証拠は含めません。コードの導入、スキーマ適用、組織への有効化は別操作です。
|
|
20
|
+
|
|
21
|
+
## 主な機能
|
|
22
|
+
|
|
23
|
+
- 公開パッケージの型付きAPI
|
|
24
|
+
- 明示的なホスト接続と現在の認可
|
|
25
|
+
- パッケージ単位の検証と配布
|
|
26
|
+
|
|
27
|
+
## クイックスタート
|
|
28
|
+
|
|
29
|
+
registryからの導入には公開済みの版が必要です。公開前はworkspaceが作成・検証したSHA固定tarballを使用してください。パッケージのsubpath自体をbun addの引数にはしません。
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bun add @alneas/eaos-server
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
import * as capability from '@alneas/eaos-server/storage'
|
|
37
|
+
|
|
38
|
+
console.log(Object.keys(capability))
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 次の手順
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
- [Architecture and host boundaries](../../storage/docs/guide.md)
|
|
45
|
+
- [API reference](../../storage/docs/api.md)
|
|
46
|
+
- [Owning package](../../../README.md)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "eaos-storage 開発と境界"
|
|
3
|
+
description: "公開契約とホストの実行責任を分け、同じ機能の重複や権限の取り違えを防ぎます。"
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# eaos-storage 開発と境界
|
|
12
|
+
|
|
13
|
+
## 背景と目的
|
|
14
|
+
|
|
15
|
+
公開契約とホストの実行責任を分け、同じ機能の重複や権限の取り違えを防ぎます。
|
|
16
|
+
|
|
17
|
+
## 構成図
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
flowchart LR
|
|
21
|
+
Host[Trusted host] --> Adapter[Scoped Server adapter]
|
|
22
|
+
Adapter --> Store[Host-owned durable provider]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## トレードオフと判断
|
|
26
|
+
|
|
27
|
+
### 所有範囲
|
|
28
|
+
|
|
29
|
+
tenant-scoped storage・認可と署名URLの境界。業務plugin・業務物理schema・顧客データ・秘密値・実環境設定・運用receiptは含めません。
|
|
30
|
+
|
|
31
|
+
### 開発
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
EAOS依存がまだ未公開の場合は、workspaceのビルド入口を使います。先行パッケージをtgzにして隔離環境へ導入し、型生成・テスト・packの成功後だけ最新receiptを更新します。
|
|
36
|
+
|
|
37
|
+
### 認可・永続化
|
|
38
|
+
|
|
39
|
+
tenant/user/rolesは検証済みホストから渡します。Lifecycleの有効状態とresource権限を実行時に再確認します。CASは古いrevisionを拒否し、監査/Outboxはホストがdurableなstoreへ保存します。SQL接続・provider資格情報はホストから注入します。
|
|
40
|
+
|
|
41
|
+
### 配布と適用
|
|
42
|
+
|
|
43
|
+
コードの導入、DB/infra適用、tenant有効化は別操作です。build/test/installは本番migrationやPulumi updateを実行しません。共通ドキュメントサイトの原稿はこのrepoのdocsが正本です。
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Lifecycle capability"
|
|
3
|
+
description: "Host developers use @alneas/eaos-server/lifecycle-engine for reviewed lifecycle plans and migration history."
|
|
4
|
+
sidebar:
|
|
5
|
+
order: 20
|
|
6
|
+
archetype: "explanation"
|
|
7
|
+
project: "eaos-workspace"
|
|
8
|
+
tags: ["eaos", "explanation"]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Lifecycle capability
|
|
12
|
+
|
|
13
|
+
## Elevator Pitch
|
|
14
|
+
|
|
15
|
+
Host developers use `@alneas/eaos-server/lifecycle-engine` for reviewed lifecycle plans and migration history.
|
|
16
|
+
|
|
17
|
+
## Why & Value
|
|
18
|
+
|
|
19
|
+
This topic belongs to `@alneas/eaos-server` and is not an independently installed package. Shared contracts keep capability ownership clear while host identity, provider configuration and acceptance remain explicit.
|
|
20
|
+
|
|
21
|
+
## Key Highlights
|
|
22
|
+
|
|
23
|
+
- Canonical package subpath
|
|
24
|
+
- Explicit host boundaries
|
|
25
|
+
- Typed declarations and local verification
|
|
26
|
+
|
|
27
|
+
## Quickstart
|
|
28
|
+
|
|
29
|
+
Install the owning package, using a verified tarball before registry publication.
|
|
30
|
+
|
|
31
|
+
### Public import
|
|
32
|
+
|
|
33
|
+
Install the owning package and use the exact import in the example below. The subpath is not a separate npm package. Check the selected entry's runtime and peer requirements in the linked architecture guide.
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
bun add @alneas/eaos-server
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import * as capability from '@alneas/eaos-server/lifecycle-engine'
|
|
41
|
+
|
|
42
|
+
console.log(Object.keys(capability))
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Next Steps
|
|
46
|
+
|
|
47
|
+
- [Architecture and host boundaries](docs/guide.md)
|
|
48
|
+
- [API reference](docs/api.md)
|
|
49
|
+
- [Owning package](../index.md)
|