Summary
Initial bootstrap of the cross-agent platform service. Implementation companion to agent-template#112 (architecture decision: Option 4, remote-store adapter with sibling platform service).
What's done in this bootstrap commit
- FastAPI service skeleton (
src/fipsagents_platform/) with /healthz, /readyz.
- Feedback proof point:
POST /v1/feedback, GET /v1/feedback, GET /v1/feedback/{id}, PATCH /v1/feedback/{id}, GET /v1/feedback/stats.
- Reuses
fipsagents.server.feedback.FeedbackStore (SQLite + Postgres backends from agent-template) — no parallel persistence implementation.
- Bearer-token auth with
none and keycloak modes (validates against the same realm as the gateway).
- Helm chart (UBI9 base image, ConfigMap, optional PVC for SQLite, optional OpenShift Route).
- pytest suite: 13/13 passing end-to-end against a real SQLite store.
What this issue tracks (the next slice of work)
Companion issues
Out of scope
Per the architecture doc:
- Cross-tenant auth boundary — punt until multi-tenant is in scope.
- Cross-agent session continuity — protocol question, not a storage question.
- OTEL trace export inside the platform — already partially solved by
OTELTraceStore in fipsagents; can adopt later without a topology change.
Size
L (this issue is the umbrella; sessions and traces will likely split into their own subtasks)
Summary
Initial bootstrap of the cross-agent platform service. Implementation companion to agent-template#112 (architecture decision: Option 4, remote-store adapter with sibling platform service).
What's done in this bootstrap commit
src/fipsagents_platform/) with/healthz,/readyz.POST /v1/feedback,GET /v1/feedback,GET /v1/feedback/{id},PATCH /v1/feedback/{id},GET /v1/feedback/stats.fipsagents.server.feedback.FeedbackStore(SQLite + Postgres backends from agent-template) — no parallel persistence implementation.noneandkeycloakmodes (validates against the same realm as the gateway).What this issue tracks (the next slice of work)
SessionStoreABC over REST. Endpoints:POST /v1/sessions,GET /v1/sessions/{id},DELETE /v1/sessions/{id}. Currently 501.TraceStoreABC over REST. Endpoints:GET /v1/traces,GET /v1/traces/{id}. Currently 501.CREATE TABLE IF NOT EXISTS(mirroring fipsagents) or adopt a tool (alembic). Lean toward minimal — fipsagents already does the former.Companion issues
HttpFeedbackStore/HttpSessionStore/HttpTraceStoreon the agent sideOut of scope
Per the architecture doc:
OTELTraceStorein fipsagents; can adopt later without a topology change.Size
L (this issue is the umbrella; sessions and traces will likely split into their own subtasks)