REM in the AI coding era: Vault at the core, Fort at the boundary
most AI teams are trying to solve the same problem right now:
how do you let agents execute real work in real systems without turning your secret layer into a liability?
at Aureuma, this became one of the central architecture questions behind SI and our runtime execution model (REM).
the answer was not to create one giant secrets system that does everything. that pattern looks convenient at first and becomes dangerous later.
we chose a stricter split:
- Vault handles cryptography and encrypted dotenv state.
- Fort handles policy, auth, and runtime secret access workflows.
that separation is not cosmetic. it is structural.
the threat model REM is designed for
agentic systems fail in predictable ways under pressure:
- long-lived tokens spread across too many runtimes
- hidden fallback paths that bypass intended policy
- plaintext secret handling normalized in dev tooling
- weak separation between "can decrypt" and "can execute"
REM treats those as baseline conditions, not edge cases.
where most agent stacks fail
the common failure pattern is layering convenience tools until the credential surface becomes untraceable.
you get:
- too many fallback paths
- unclear source of truth for policy
- secrets copied into prompts, scripts, and shell history
- runtime behavior that works until one bad path leaks trust boundaries
that is why REM starts with strict role assignment, not convenience.
the architecture contract in one line
Vault protects secret state. Fort governs secret use. REM enforces runtime behavior against both.
1) decouple crypto from policy
SI Vault is intentionally narrow. it owns encryption format, key material handling, and local secret-state maintenance.
Fort is intentionally narrow too. it does not become another crypto engine. it sits above Vault as the auth and policy control layer.
this gives us a cleaner trust model:
- Vault answers: how are secrets protected?
- Fort answers: who can use them, when, and under what policy?
when those responsibilities are fused, every bug has larger blast radius. when they are split, each layer can be hardened and audited independently.
2) make the boundary explicit, not implied
in SI, runtime workers are expected to consume secrets through Fort, not by calling low-level Vault paths directly.
that gives one policy control point for runtime access:
- least-privilege can be enforced per runtime context
- session and token behavior can be constrained
- failures are explicit instead of silently escalating to broader auth
agent systems fail when fallback behavior is unclear. REM prefers loud failure over implicit privilege expansion.
3) runtime injection without plaintext culture
the practical advantage of Fort is not "hiding strings." it is controlling where and when materialization happens.
instead of normalizing secret copy/paste into code and prompts, workflows refer to secret identity and runtime policy resolves actual values.
in practice this reduces common leakage channels:
- no secret literals in git history
- no routine secret payloads in ticket text or agent prompts
- no broad default credential distribution to every coder or agent lane
it also changes team habits: engineers stop designing workflows around secret copy semantics and start designing around policy-scoped execution.
4) policy lanes per agent profile
not every agent should have identical capabilities.
REM treats access as profile-scoped lanes, not one flat permission plane. that allows tighter auth posture by workload class.
for teams this is the real fork in the road:
- either one token can do almost everything
- or each lane can do only what its policy allows
the second model is slower to design and much safer to operate.
failure behavior: fused stack vs REM split
when a request is malformed, denied, or out-of-scope:
- fused stack often falls back to alternate auth paths or stale credentials
- REM fails closed at Fort policy boundary and keeps Vault state untouched
that distinction is what prevents "temporary workaround" logic from becoming permanent exposure.
the REM secret flow, end to end
- secret is encrypted and maintained in Vault-native format.
- runtime requests secret access through Fort policy boundary.
- Fort validates context, lane, and token/session state.
- value is materialized only for execution path that needs it.
- access outcome is observable and auditable at control-plane level.
that sequence is the point: minimal overlap, explicit controls, narrow blast radius.
rollout path for teams adopting this model
- isolate encrypted secret state into Vault-native flow.
- move runtime secret reads behind Fort policy checks.
- remove direct low-level decryption calls from app/agent code.
- define profile lanes by workload, not by team org chart.
- make denied access observable and part of normal operations.
adoption succeeds when policy failures are treated as design feedback, not as exceptions to patch around.
what this gives operators
- simpler incident response because responsibility is separated
- clearer rotation and access governance paths
- safer autonomous execution for long-running agent workflows
- fewer emergency exceptions that become permanent architecture debt
what this gives AI coding teams
- faster shipping with less credential choreography
- lower chance of accidental leakage in normal dev flow
- confidence that policy controls remain active when automation scales
practical control-plane signals that matter
operators should track:
- denied-to-allowed ratio by agent lane
- secret materialization frequency per workflow class
- expired-session usage attempts
- unexpected lane-to-secret access patterns
those signals expose drift early, before it turns into incident response.
why this architecture wins in the AI coding era
there is constant pressure to collapse layers for speed. that is usually short-term thinking.
for production-grade agentic execution, the winning pattern is still:
- narrow cryptographic core
- separate policy and runtime boundary
- explicit runtime materialization
- per-lane least-privilege policy
that is why Vault and Fort are separate in SI and why REM is built around that contract.
execution is now the product surface. security architecture is what makes that execution trustworthy.