m6/org/openalice-deploy

openalice-deploy

**Ecosystem launcher / orchestrator for the OpenAlice Labs stack.**

Features
0
Status
·unknown
Last activity
2d ago
Branch
mvp

Architecture rating

C-4h ago
docsA-

Thorough README (layout, usage, shared-infra contract, cutover honesty with measured blip data, canonical names, scripts policy). 5 runbooks (DEPLOY, ROLLBACK, INCIDENT, secrets, registries, selfhosted-runner). MIGRATION.md with per-product status table, ownership matrix, and phase ordering. E4-PROD-CUTOVER-RUNBOOK, EVAL_RESULT_CONTRACT, LAUNCH-EMBED. Dense in-code architecture notes in every compose fragment (security audit references, design rationale, known consequences). .atlas-deps manifest valid. Only gap: no @feature annotations (feature_count=0).

consistencyB

All 21 compose fragments follow identical structure: external network declarations, Traefik label pattern (router+entrypoint+TLS+middleware+port), logging block (json-file 50m/3), restart:unless-stopped, resource limits. Canonical service naming enforced (E5.5). Scripts uniformly use set -euo pipefail. .atlas-deps.yml manifest valid. Minor variance: some services use TCP healthcheck vs HTTP curl; embed-runtime installs curl at runtime in command (inconsistent with identity's bash TCP probe).

securityC+

SOPS+age encrypted secrets with render/seal lifecycle; RS256 JWT via file-mount (never env var); runtime DB role is NOSUPERUSER+RLS (auth_app); Traefik edge excludes /metrics and /internal paths (defense-in-depth); edge rate-limit middlewares on auth+embed-api; prod boot guard refuses dev-default secrets when OPENALICE_ENV=prod; AES-256-GCM at-rest for visitor PII. Deductions: autoheal mounts Docker socket RW (acceptable but broad), dev-default passwords inline in compose (gated but visible), no network-policy or seccomp profiles.

reliabilityC

Healthchecks on critical services (identity TCP :3960, embed-runtime HTTP /health, landing HTTP :3210); autoheal sidecar auto-restarts unhealthy+opted-in containers within ~30s; restart:unless-stopped on all 21 services; resource limits (cpu+memory) on every service; per-product restart isolation via --no-deps; oa deploy auto-rollback with .prev binary snapshot; gate-alert.sh watchdog with Telegram alerting. No stop_grace_period or SIGTERM handling in any fragment; no circuit breakers; no idempotency keys at this layer.

observabilityC-

OTEL tracing to Tempo (OTLP/HTTP) on identity+embed-runtime with OTEL_SERVICE_NAME set; /metrics endpoints exposed internally for Prometheus scraping (excluded from public edge); RUST_LOG structured log levels; json-file log driver with 50m/3-file rotation on every service; gate-alert.sh as external synthetic probe. No centralized log aggregation in this repo, no alerting rules or dashboard definitions, no SLO/SLI declarations — monitoring infra lives in _shared/monitoring but nothing here wires product-specific dashboards or alerts.

data layerD

Repo owns zero tables (manifest_owns_tables=[]) — schema/migrations live in service repos. Positive signals: nightly pg_dump of identity+embed+visitors with 14-day retention, restore-drill.sh exists, per-product DB isolation (embed-visitor-db separate from platform cluster), RLS enforced via NOSUPERUSER role on identity. No GDPR tooling, no anonymization scripts, no FK/constraint visibility from this layer — score conservative because data governance is delegated elsewhere with no verification here.

testingF

One k6 load test (k6-session.js, ~17 lines) hitting the embed session endpoint with a 50-VU ramp and p95<1500ms threshold. PERF-BASELINE.md records results. restore-drill.sh is a manual backup-verification test. TEST_SYSTEM_PROPOSAL.md exists but is unimplemented. No CI pipeline, no compose-config validation tests, no smoke tests for fragment syntax, no automated gate checks — for a 21-service orchestrator the test surface is near-absent.

source · auto-grader-2026-07-18

Ecosystem manifest

.atlas-deps.yml

Ecosystem product orchestrator — owns the docker-compose fragments + per-product launch/restart for every OpenAlice product that is NOT Alice-core. Extracted from the openalice mega-compose (2026-06-22 decoupling).

Runtime deps

Code composition

tokei · loc
1.4kloc
  • YAML88.8%
  • Shell10.0%
  • JavaScript1.2%
  • YAML88.8%· 1,241
  • Shell10.0%· 140
  • JavaScript1.2%· 17
Language% codecodecommentsblanksfiles
YAML88.8%1,2417323327
Shell10.0%14062168
JavaScript1.2%17001
Markdown0.0%083222914

Telemetry ribbon · last 90 days

51 events
MAYJUNJUL2026-06-22 · lifecycle · first scan — repo indexed2026-06-22 · commit · new commit f8b8ac5 → 19361a02026-06-22 · commit · new commit 19361a0 → 70e14002026-06-22 · commit · new commit 70e1400 → 2f000032026-06-22 · commit · new commit 2f00003 → 14744ac2026-06-23 · commit · new commit 14744ac → 5c1c0142026-06-24 · commit · new commit 5c1c014 → cb822552026-06-24 · commit · new commit cb82255 → e65a3fc2026-06-24 · commit · new commit e65a3fc → 06b57642026-06-24 · commit · new commit 06b5764 → 04076502026-06-24 · commit · new commit 0407650 → af602d62026-06-26 · commit · new commit af602d6 → 8f268bf2026-06-26 · commit · new commit 8f268bf → 4ea82e32026-06-26 · commit · new commit 4ea82e3 → 0e12e292026-07-02 · commit · new commit 0e12e29 → 1d03f662026-07-02 · commit · new commit 1d03f66 → b01a5e32026-07-02 · commit · new commit b01a5e3 → 09095402026-07-04 · commit · new commit 0909540 → 83626932026-07-04 · commit · new commit 8362693 → 1a35eb22026-07-04 · commit · new commit 1a35eb2 → 58b28c42026-07-04 · commit · new commit 58b28c4 → 5e1c6952026-07-04 · commit · new commit 5e1c695 → 26903662026-07-05 · commit · new commit 2690366 → 851a3622026-07-05 · commit · new commit 851a362 → 9e465c32026-07-05 · commit · new commit 9e465c3 → 84536b62026-07-05 · commit · new commit 84536b6 → 0d5e45d2026-07-05 · commit · new commit 0d5e45d → 4c851cd2026-07-05 · commit · new commit 4c851cd → 516388d2026-07-05 · commit · new commit 516388d → 8bc0b422026-07-06 · commit · new commit 8bc0b42 → 6cfc9de2026-07-06 · commit · new commit 6cfc9de → 8490d642026-07-06 · commit · new commit 8490d64 → 272889d2026-07-06 · commit · new commit 272889d → 11df6032026-07-06 · commit · new commit 11df603 → 8388f792026-07-06 · commit · new commit 8388f79 → 1c2eb5e2026-07-06 · commit · new commit 1c2eb5e → 5fa845c2026-07-06 · commit · new commit 5fa845c → 0b58d4d2026-07-06 · commit · new commit 0b58d4d → 59437fb2026-07-06 · commit · new commit 59437fb → 66055ca2026-07-06 · commit · new commit 66055ca → e4702f22026-07-06 · commit · new commit e4702f2 → 426329a2026-07-06 · commit · new commit 426329a → c9427a02026-07-08 · commit · new commit c9427a0 → 00bad6f2026-07-08 · commit · new commit 00bad6f → b8246432026-07-09 · commit · new commit b824643 → 1edebe02026-07-10 · commit · new commit 1edebe0 → 54cd1192026-07-10 · commit · new commit 54cd119 → d1df2052026-07-12 · commit · new commit d1df205 → 65bf8922026-07-13 · commit · new commit 65bf892 → cbe87522026-07-14 · commit · new commit cbe8752 → a2ab7fb2026-07-16 · commit · new commit a2ab7fb → ec3799eNOW
commitmanifestlifecyclekind

No @feature annotations recorded in this repo yet.