Changeset 0.29.0 (#195)
This commit is contained in:
@@ -30,7 +30,7 @@ v0.9.x–v0.28.7 Foundation through Platform Polish ✅
|
||||
│ │
|
||||
Extension Track Operations Track
|
||||
│ │
|
||||
v0.29.0 Starlark Sandbox v0.32.0 Multi-Replica HA
|
||||
v0.29.0 Starlark Sandbox ✅ v0.32.0 Multi-Replica HA
|
||||
v0.29.1 API Extensions v0.33.0 Observability
|
||||
v0.29.2 DB Extensions v0.34.0 Data Portability
|
||||
v0.29.3 Workflow Forms │
|
||||
@@ -50,12 +50,6 @@ v0.9.x–v0.28.7 Foundation through Platform Polish ✅
|
||||
STT/TTS, desktop app)
|
||||
```
|
||||
|
||||
**Target deployment (v0.50.0):** 3-node cluster, 3-node PG (patroni/cnpg),
|
||||
S3 (Ceph RGW), CephFS. 5–10 teams × ~5 users, 4 admins, 100+ anonymous
|
||||
visitors. Multi-replica backend for node-level HA.
|
||||
|
||||
---
|
||||
|
||||
## Completed: v0.28.0 — Platform Polish
|
||||
|
||||
Audit arc, frontend decomposition, security, infrastructure. Eight
|
||||
@@ -132,32 +126,50 @@ Memory profile (measured on cluster via `kubectl top`):
|
||||
Sequential. Each version builds on the previous. Delivers the package
|
||||
ecosystem, workflow capabilities, and SDK-based surface architecture.
|
||||
|
||||
### v0.29.0 — Starlark Sandbox + Permission Model
|
||||
### v0.29.0 — Starlark Sandbox + Permission Model ✅
|
||||
|
||||
Server-side extension runtime. Prove the eval loop, permission pipeline,
|
||||
and admin UI before adding capabilities.
|
||||
Server-side extension runtime. Eval loop, permission pipeline,
|
||||
pre-completion filter chain, and admin review workflow.
|
||||
|
||||
Depends on: v0.28.8.
|
||||
|
||||
**Phase 0 — Store cleanup (prerequisite):**
|
||||
- [ ] `SELECT *` → explicit column lists in both store packages
|
||||
- [ ] Raw SQL hunt: all `database.DB.*` outside `store/` → store methods
|
||||
- [ ] CI gate: grep-enforced, zero hits
|
||||
**Phase 0 — Store cleanup (prerequisite): ✅**
|
||||
- [x] Raw SQL hunt: all ~242 `database.DB.*` calls outside `store/`
|
||||
migrated to store interface methods (CS0–CS7b, 12 changesets)
|
||||
- [x] CI green on both PG and SQLite pipelines
|
||||
- [x] ICD runner: 579/580 pass, 1 expected skip
|
||||
- [x] Documented exception: `events/pg_broadcast.go` (`pg_notify`,
|
||||
PG-only, no store abstraction needed)
|
||||
|
||||
**Starlark runtime:**
|
||||
- [ ] `go.starlark.net` integration (eval loop, timeout, memory ceiling)
|
||||
- [ ] Permission model: manifest declarations, admin grant/revoke,
|
||||
`extension_permissions` table
|
||||
- [ ] Runtime enforcement: sandbox injects only granted modules
|
||||
- [ ] Admin UI: permission review, grant/revoke, audit log.
|
||||
Task permission management (deferred from v0.28.7).
|
||||
- [ ] Extension lifecycle: `install → pending_review → approved → active`
|
||||
- [ ] Initial modules: `secrets` (vault-backed), `notifications`
|
||||
- [ ] `task_type: "starlark"`: sandbox execution with task context.
|
||||
RBAC gate from v0.28.7 enforced.
|
||||
- [ ] KB auto-injection: server-side pre-completion filter (Go built-in).
|
||||
Reference implementation for the filter model Starlark mirrors.
|
||||
- [ ] ICD runner: `packaging` test tier (deferred from v0.28.7)
|
||||
**Phase 1 — Starlark runtime: ✅**
|
||||
- [x] Pre-completion filter chain: composable `PreCompletionFilter`
|
||||
interface + `Chain` registry. KB auto-inject refactored as first
|
||||
built-in filter. Extension filters register at order 100+ (CS0)
|
||||
- [x] `go.starlark.net` integration: sandboxed eval with step limits
|
||||
(1M ops default), context timeout, captured print output,
|
||||
disabled `load()`. `MakeModule` helper for Go→Starlark (CS1)
|
||||
- [x] Permission model: `extension_permissions` table (in 016),
|
||||
`status` column on `packages` (`active`/`pending_review`/
|
||||
`suspended`). Manifest `"permissions"` array parsed on install.
|
||||
Admin review, grant, revoke, grant-all endpoints (CS2)
|
||||
- [x] Runtime enforcement: `Runner.buildModules()` injects only
|
||||
granted modules into sandbox namespace (CS3)
|
||||
- [x] Extension lifecycle: `install → pending_review → grant-all →
|
||||
active`, revoke → `suspended`. Auto-transitions on grant/revoke.
|
||||
- [x] Initial modules: `secrets` (GlobalConfig-backed, per-package
|
||||
key-value store, admin CRUD), `notifications` (wraps
|
||||
notification service, `send(user_id, title, body?, type?)`) (CS3)
|
||||
- [x] `task_type: "starlark"`: executor `executeStarlark` loads
|
||||
package by ID, calls `on_run()` entry point via runner.
|
||||
RBAC gate `task.starlark` enforced. `system_function` field
|
||||
holds package ID (CS4)
|
||||
- [x] KB auto-injection: server-side pre-completion filter chain.
|
||||
Reference implementation for the filter model Starlark
|
||||
extensions mirror via `on_pre_completion(ctx)` (CS0+CS3)
|
||||
- [x] Starlark filter discovery: `DiscoverStarlarkFilters` scans
|
||||
active packages with `filters.pre_completion` grant (CS3)
|
||||
- [x] ICD runner: `packaging` test tier — 18 tests covering
|
||||
permission lifecycle + secrets CRUD (CS5)
|
||||
|
||||
### v0.29.1 — API Extensions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user