Admin · Setup

Import workbench

Paste JSON, see exactly what it will do, then apply through an audited database function. Applies run as you, so sign in first.

You are signed out
Previews still work, but every apply will be refused. Go to login.
EnvironmentReadyRoot env loaded
Remote writesTest windowGuarded CLIs
Bootstrap payloadValid1 company, 48 periods
Schema apply50 workbenchespnpm v2:migration-status

Foundation

File assets

Back to the app

External AI briefing

Copy this prompt, paste it into ChatGPT/Claude with your Excel/CSV, then paste the returned JSON here.

PAN: not set — add at /app/company

VAT: not set — add at /app/company

Examples are templates, not gospel
Repo examples pass structural validation but use placeholder tax IDs and sample amounts. Your accountant should confirm statutory rules and opening balances before you apply in production.

File Assets JSON

Valid
28 lines

Preview

Validation only
Company
SCC
Assets
2
R2 assets
1
Drive assets
1
Restricted
1
Archived
0
Evidence links
1
1 warning
  • payload.assets[0].source hr.employees SC-001 must already exist when applying

Registers file metadata only: R2 object keys and Drive links, never bytes, and no signed URL is created. Rows are matched by storage identity among active rows: R2 bucket + object key (global across companies), or Drive URL within this company. An R2 key already registered by another company is refused as a collision. Re-importing updates the existing row, importing with status archived archives it (kept, never deleted, stamps you), and re-registering an archived identity creates a fresh row. R2 assets need an explicit r2Bucket. A source reference must point at an existing employee, invoice, bill, pay run, task or party or the whole import is refused. Requires files.manage.

Runs app.apply_import('file_assets') as you; the database re-checks your permission and records an audit event.