m3/org/openalice-orchestrator

openalice-orchestrator

Features
15
Status
·unknown
Last activity
1mo ago
Branch
mvp

Architecture rating

D1mo ago
consistencyB

Strong substrate adoption: valid manifest, 0 circular deps, 0 dead imports, 0 unused defs/vars, 0 naming violations, one god-module the only structural blemish — uniform, convention-following Rust codebase.

docsC

Manifest 100/100 with clear summary, AGENTS.md present, 15 @feature annotations and features 100/100; dragged down by empty README excerpt, 19 missing docstrings, and roadmap at 30/100 (the weakest quality axis).

reliabilityD

Clean Rust (avg complexity 3.79, max 13, 0 bare/broad excepts, 0 cycles) is a good base, but for a lifecycle orchestrator there is no visible evidence of SIGTERM graceful shutdown, container-op timeouts/retries, or idempotent restart handling — core reliability concerns unverified.

securityD

Exposes /api/v1/* but manifest declares only an http:// endpoint (no TLS) and health probe failed on 'no https endpoint'; zero visible signal on authn/authz, secret handling, SSRF guards on docker-compose/mesh control, or rate-limiting — graded conservatively for absence.

data layerD

manifest_owns_tables=[] and no migrations/ present — orchestrator holds no persistent schema, so no RLS/FK/GDPR signal to credit; lifecycle/mesh state appears in-memory or undisclosed, graded conservatively for unknown durability.

observabilityF

Health probe is down (up:false, 'no https endpoint in manifest exposes', no matched_path/latency); no metrics, tracing, or structured-log signals surfaced and no usable /healthz probe target — observability effectively unverifiable.

testingF

No tests detected — migrations/tests presence section empty and inspector reports no test count for a service that orchestrates multi-instance lifecycle and docker-compose routing; critical paths are untested as far as evidence shows.

source · auto-grader-2026-06-16

Ecosystem manifest

.atlas-deps.yml

Multi-instance orchestrator for OpenAlice — manages lifecycle, docker-compose routing, and A2A mesh discovery.

Runtime deps
  • via docker compose / container volume mount
    Spawns and manages openalice containers; mounts alice binary + entrypoint from the main repo build.
Consumed env
  • ORCH_PORT
  • ORCH_BASE_PORT
  • HOME
Exposes
  • http_endpoint: http://orchestrator:8200/api/v1/*
Env drift · manifest ⇄ code

Atlas grepped the repo's source for env reads (rust env::var · ts process.env · py os.environ · shell $VAR) and diffed against the manifest's consumes_env. Two lists below: stale declarations and undeclared reads.

Manifest declares, code unused
  • HOME
Observed reads: 2 · declared: 3

Code composition

tokei · loc
877loc
  • Rust98.1%
  • TOML1.9%
  • Rust98.1%· 860
  • TOML1.9%· 17
Language% codecodecommentsblanksfiles
Rust98.1%86045871
TOML1.9%17011
Markdown0.0%0831

Telemetry ribbon · last 90 days

1 event
MAYJUNJUL2026-05-21 · commit · new commit 1bc7e73 → 632d128NOW
commitmanifestlifecyclekind

orchestrator/a2a

1 feature
  • orchestrator.api.mesh-status
    src/main.rs:1001
    Polls every running instance's `/.well-known/agent.json`, returns aggregated A2A mesh view with agent cards.
    route:/api/v1/mesh
    since 0.1.0

orchestrator/api

5 features
  • orchestrator.api.create-instance
    src/main.rs:506
    Allocates id+port, validates+slugs name, writes alice.yaml and compose file, persists registry.
    route:/api/v1/instances
    since 0.1.0
  • orchestrator.api.get-instance
    src/main.rs:655
    Fetches a single instance by UUID, 404 if absent.
    route:/api/v1/instances/{id}
    since 0.1.0
  • orchestrator.api.health
    src/main.rs:482
    Reports orchestrator status, version, total + running instance counts, and uptime.
    route:/api/v1/health
    since 0.1.0
  • orchestrator.api.instance-health-proxy
    src/main.rs:945
    Probes `http://{container}:8080/health` via Docker DNS; reports reachability + latency.
    route:/api/v1/instances/{id}/health
    since 0.1.0
  • orchestrator.api.list-instances
    src/main.rs:641
    Returns redacted views (tokens stripped) of every registered instance.
    route:/api/v1/instances
    since 0.1.0

orchestrator/config

1 feature
  • orchestrator.bin.openalice-orchestrator
    src/main.rs:13
    Reads ORCH_PORT (listen, default 8200) and ORCH_BASE_PORT (instance port base, default 8080) from env.
    bin:openalice-orchestratorroute:/api/v1/*
    since 0.1.0

orchestrator/lifecycle

4 features
  • orchestrator.lifecycle.delete-instance
    src/main.rs:875
    Tears down compose stack, removes compose file, drops registry entry; preserves data dir on disk.
    route:/api/v1/instances/{id}
    since 0.1.0
  • orchestrator.lifecycle.port-allocator
    src/main.rs:268
    Allocates the next free TCP port for a new instance by incrementing the current max.
    since 0.1.0
  • orchestrator.lifecycle.start-instance
    src/main.rs:680
    Shells out to `docker compose up -d --build` against the instance's compose file; transitions Created→Starting→Running.
    route:/api/v1/instances/{id}/start
    since 0.1.0
  • orchestrator.lifecycle.stop-instance
    src/main.rs:795
    Runs `docker compose down`; marks Stopped even on partial failure so registry stays consistent.
    route:/api/v1/instances/{id}/stop
    since 0.1.0

orchestrator/persistence

1 feature
  • orchestrator.persistence.instance-files
    src/main.rs:600
    Materializes the instance's data dir, alice.yaml, and compose file under the orchestrator data dir.
    since 0.1.0

orchestrator/template

2 features
  • orchestrator.template.alice-yaml
    src/main.rs:289
    Emits a fully-formed alice.yaml (router tiers, connectors, browser, rank) per spawned instance.
    since 0.1.0
  • orchestrator.template.docker-compose
    src/main.rs:376
    Renders per-instance docker-compose with Traefik labels, healthcheck, resource limits, and openalice/proxy networks.
    since 0.1.0

orchestrator/util

1 feature
  • orchestrator.util.slug
    src/main.rs:462
    Normalizes instance names into Traefik/Docker-safe slugs (lowercase, alphanumeric + dashes).
    since 0.1.0