AIM / FCAPS / Security
AIM · S · Security
A monitor that can be fooled is worse than none.
AIM sees across every application it watches, so its own boundary has to be tighter than theirs. Each identity has one job, each route declares its gate, the network denies by default, and the security signals AIM collects are minimised before they leave the application.
Security detections
What the application tells AIM, and what it deliberately doesn't.
Fiduciary publishes a security-detections feed for AIM: each detection's alarm key, condition, target, count and the time of the latest occurrence, plus the window and an overall posture. Every key in the response is on an allowlist, so rule contents, prompts, refusal messages and per-person totals never leave the application.
Who can talk to AIM
Operators, collectors and the browser each get a different door.
Operators
Exact audience, named clients
AIM accepts an operator token only if its audience is exactly AIM's and it was issued to an allowlisted client. Tokens meant for another service, collector tokens, and tokens living longer than the cap are refused. The client and the purpose are recorded with each decision.
The AIM screen
PKCE, no password grant
The browser signs in through its own public client using an authorization code with PKCE. The client has no password grant, no service account and no implicit flow. Tokens live only in memory, never in browser storage, and are cleared on sign-out. A live check confirmed an exchange without the PKCE verifier is refused, and so is one with the wrong verifier.
Collectors
One identity per application
Each application has its own collector identity, accepted only by that application's monitoring endpoints. Checked live: a collector token is refused on user routes, and one application's collector is refused by another application.
Network
Deny by default
AIM's namespace starts from a default-deny network policy, then allows only what it needs: DNS, its own database, its message bus, Keycloak, and each managed application's API port. TestPulse is reached only on its TLS port, through a pinned certificate authority.
Inside AIM
Security detections become alarms like any other.
AIM's alarm evaluator already understands security detections: a raised detection opens an alarm occurrence, and it clears when the application stops raising it. AIM's security read view never reports "clear" from stale data: an old "clear" older than its freshness window is published as "not observed".
Built, and what's next
Built: the producer feed and its controls, the evaluator's support for security detections, the security read view, operator authentication, the PKCE browser login, the per-application collector identities and the default-deny network policy. Planned: adding the feed to AIM's targets registry so it's collected every 60 seconds; acknowledging security alarms inside AIM, which needs a separate security permission; and reopening an acknowledged security alarm when a new refusal arrives. All data is synthetic.
Talk to us about applying FCAPS to your AI.
If you run an operations team that already speaks FCAPS, AIM gives the AI the same five lenses: Fault, Configuration, Accounting, Performance and Security.