Grant it directly.
Give an entity a specific piece of access. A deliberate exception, with a name attached.
ENTITY ACCESSSELF-HOSTED IDENTITY GOVERNANCE
One record of who exists.
One model of what they can reach.
Define the access that should exist. Agmen provisions it, reconciles what comes back, and keeps the work traceable.
Follow the accessperson · department: engineering
developers
SCIM 2.0engineering
LDAP VIEWreader
OPENTOFUReconcile observed state.
Surface the difference.
01 / THE ACCESS MODEL
A person. A machine. A function they hold. An attribute that changed. Make the reason explicit, and let the system carry it through.
Agmen / Latin
An army on the march.
Many parts. One direction.
Give an entity a specific piece of access. A deliberate exception, with a name attached.
ENTITY ACCESSGroup access across applications. Assign the function once; provision the access it carries.
ENTITY FUNCTION ACCESSMatch entity attributes or held access. Rule-derived grants follow the match as it changes.
RULE FUNCTION ACCESS02 / FROM INTENT TO EVIDENCE
The target system has its own state. Agmen tracks the work in both directions, so intent and reality can be compared.
Hold the canonical entities and the access they should have.
Queue provisioning tasks with retries and per-application serialization.
Read target state. Identify drift and accounts without a matching entity.
Inspect tasks and audit records. Follow what changed and why.
For connectors that reconcile downstream state, a correct drift policy can queue corrective work. Embedded LDAP serves the governed view directly.
03 / CONNECTIONS
Four connector paths. Choose the one your application understands.
Provision through the standard identity API.
Config-driven mappings for proprietary JSON APIs, including Okta and Microsoft Graph.
Serve an application-specific directory view directly from Agmen’s data.
Apply access through provider resources, with a local state file per application.
04 / OPERATIONS
Start with one static Go binary and SQLite. Use Postgres and worker roles when your deployment calls for them.
# Build Agmen
go build -o agmen ./cmd/agmen
# Start the control plane
./agmenOpen the setup URL printed in the log, enter the one-time code, and register a passkey.
OpenTofu applications also need the tofu binary.
Know who exists.
Know what they can reach.