Skip to content

Latest commit

 

History

History
74 lines (57 loc) · 5.43 KB

File metadata and controls

74 lines (57 loc) · 5.43 KB

StarIntel Server documentation

Documentation index

This directory documents the implemented StarIntel Server runtime. It is written from the code in source/starintel-gserver.asd, not from an aspirational architecture.

Security design documents are explicitly marked DESIGN and do not claim that the corresponding controls are implemented.

Start here

  1. README — install, run, submit a document, and find the main entry points.
  2. Architecture — understand startup, components, concurrency, and the repository.
  3. Document specification — understand the data that moves through the system.
  4. Actors — build local actors and connect external actor services.
  5. Messaging — understand routing, delivery, recursion, and loop control.
  6. Configuration — configure local, container, remote, and tuned deployments.
  7. HTTP API — call the service.
  8. HTTP authentication runtime — bootstrap, API-key lifecycle, CORS, request context, revocation behavior, and deployment.
  9. HTTP authorization runtime — capabilities, tenant/dataset/actor/target policy, route mapping, search isolation, Rabbit provenance, audit, and quotas.
  10. Docker/Nix stack and testing — operate and verify it.
  11. HTTP authentication threat model — protected assets, attackers, boundaries, controls, failures, and residual risks. Design contract.
  12. KV lease authentication boundary — target-lease assets, atomic ownership, fencing, replay controls, and the KV trust boundary. Normative design contract.
  13. Distributed target lease semantics — canonical lock identity, records, state transitions, operations, idempotency, deadlines, fencing enforcement, races, errors, audit, and recovery. Normative design contract.
  14. Lease-store protocol usage — Common Lisp examples for canonical identity, acquire, renew, inspect, list, release, serialization, typed outcomes, and owned shutdown.
  15. HTTP principal and capability contract — principal classes, credentials, capabilities, scopes, decisions, and route mapping. Design contract.

Generated API reference

The exported API of every package is documented where it is defined: as Org markup inside Common Lisp docstrings. The reference is rendered into doc/api/index.org — one page per package plus a symbol index.

Regenerate it with:

make docs-api

Coverage is enforced in CI: make doc-coverage fails when any exported symbol lacks a docstring.

Development workflow

Implementation status

AreaStatusNotes
CouchDB database initializationActiveCreates main, actor-event, and separate authentication databases; upserts required design documents
RabbitMQ document ingestActivedocuments.ingest.#
RabbitMQ update ingestActivedocuments.updated.#; partial deep merge and conflict retry
Target routingActiveLocal Sento actor or actors.<name>.new.target
Actor event storageActiveLocal receiver and separate events exchange consumer
HTTP API-key authenticationActiveDefault-deny bearer authentication, immutable request context, lifecycle routes, exact-origin CORS, and separate credential storage
Fine-grained route authorizationActiveClosed capabilities and tenant/dataset/actor/target scopes enforced at HTTP and embedded service boundaries; unmapped routes deny
Authentication revocation cacheActiveNo credential cache; committed revoke/disable is visible to the next verifier lookup
KV target leasesProtocol/Valkey backendBackend-neutral typed protocol, deterministic unit-test backend, and atomic production Valkey adapter are active; HTTP operations remain 501 until issue #32 wires them into execution
Clouseau full-text searchActive in ComposeSearch is authenticated and authorization clauses constrain tenant/dataset scope before backend execution
URL extractor patternExperimentalActor starts; complete global pattern dispatcher is not evident
User-finder/user-hunt actorsPresent, inactiveFiles are not in the ASDF component list
HTTP event endpointStub/new/event/:id has no implementation; replay authorization is active but backend returns 501
Strict StarIntel 0.9 ingest validationPartially wiredHTTP boundary validates required envelope fields and schema version; Rabbit ingest remains a separate boundary

Source-of-truth rule

When documentation and code disagree, the current code wins. Correct the docs in the same pull request as behavior changes.

The document model itself lives in lost-rob0t/star-cl. The Python adapter lives in lost-rob0t/starintel-doc. This server transports and stores those documents, but it currently also carries legacy flat 0.8 behavior.