VERSION.CTRL
BUILT-IN HISTORY
Git for your business operations.
Every schema migration, every API version, every configuration change — tracked with full diffs, attributed to the human or agent that made it, and rollbackable in one API call.
Why Version Control For Business Apps?
When a human accidentally deletes 500 invoices, you need to know who did it, when, and you need to undo it. When an autonomous agent modifies your chart of accounts at 3am, you need the same guarantees.
Traditional SaaS gives you an audit log — a list of events. ERP.AI gives you version control: full diffs showing exactly what changed, the ability to roll back any change to any point in time, and attribution that works for both human users and autonomous agents.
When an agent modifies your chart of accounts at 3am, you need version control.
— The Case for VCS
Diffs, Rollbacks, and Attribution
Diffs. Every write operation generates a structured diff. Schema changes show the before/after. Record modifications show field-level changes. Configuration updates show the full delta.
Rollback. POST /v1/rollback/{version_id} reverts any change. Single records, bulk operations, or schema migrations — all rollbackable. The rollback itself is versioned, so you can undo the undo.
Attribution. Every version entry records the caller: human user ID or agent ID (AGT-XXXX). Token budget consumed. Timestamp. IP address. The full chain of causation.
Every Change Tracked
ALTER TABLE agents
-- no budget tracking
ADD COLUMN budget_tokens INT DEFAULT 50000,
ADD COLUMN budget_spent INT DEFAULT 0,
ADD COLUMN budget_alert BOOLEAN DEFAULT true;
CREATE INDEX idx_agents_budget ON agents(budget_tokens);
router.get('/v1/agents/:id', async (req, res) => {
const agent = await db.agents.findOne(req.params.id);
const agent = await db.agents.findOneWithBudget(req.params.id);
res.set('X-Budget-Remaining', agent.budget_tokens - agent.budget_spent);
res.json(agent);
});
What Gets Versioned
Schema Changes
Table creation, column additions, index changes. Full DDL diffs.
Record Mutations
Field-level before/after for every create, update, and delete.
Configuration
RBAC policies, rate limits, webhook configs. Every change diffed.
API Versions
Endpoint deprecation, response schema changes. Migration guides auto-generated.
Common Questions
How far back can I roll back?
Depends on your tier. Free: 7 days. PAYG/Growth: 90 days. Enterprise: unlimited retention. Managed Services: configurable.
Does rollback work on bulk operations?
Yes. If an agent bulk-updates 10,000 records, you can roll back the entire batch in one API call. Each individual record change is also independently rollbackable.
Are agent actions attributed the same as human actions?
Yes. Every version entry records the caller type (human or agent), their ID, the operation, and the token cost. The audit trail is identical for both.
Is there a performance cost to versioning?
Minimal. Version records are append-only and stored in a separate partition. Write latency increases by < 5ms. Read performance is unaffected.
Can I export version history?
Yes. GET /v1/versions with date range, entity type, and caller filters. Export as JSON or CSV. Enterprise tier supports streaming export to your data warehouse.
Every Change Tracked.
Every Action Reversible.
Full diffs, one-call rollback, human + agent attribution. Version control isn't a feature — it's the foundation.
Full diffs · One-call rollback · Agent attribution · Unlimited retention (Enterprise)