Data & Screen Reference
Everything at a glance — screens, tables, settings, permissions, audit events and the scheduled job.
Screens & routes
| Screen | Route |
|---|---|
| Company Tags (legacy list + export) / Templates tab | company_tag · company_tag/templates |
| ID Studio Dashboard | company_tag/dashboard |
| Settings | company_tag/settings |
| Allocate IDs | company_tag/allocate |
| Template library | company_tag/templates_studio |
| Template builder | company_tag/builder/{id} |
| Generate IDs | company_tag/generate |
| Registry | company_tag/registry |
| Public QR verification (guest) | id/verify/{tenant}/{serial} |
Supporting AJAX endpoints include: save_settings,
preview_id_format, check_id_format_collisions, allocate_ids,
allocate_list_data, registry_list_data, create_studio_template,
save_template_draft, publish_template, duplicate_studio_template,
archive_studio_template, set_default_studio_template,
template_fields, upload_template_asset, template_definition,
generate_start, generate_process, generate_employees_data,
tag_detail, mark_tag_printed, issue_tag,
revoke_tag, replace_tag, download_tag,
export_registry.
Template merge fields
The visual builder's field catalogue includes employee, company, security and element fields. Government ID fields are draggable text elements: employee.tin, employee.sss, employee.pag_ibig, employee.phil_health, and employee.gsis. Emergency contact fields are employee.emergency_contact_name, employee.emergency_contact_phone, and employee.emergency_contact_address. The authorized signature image is company.authorized_signature and uses the general authorized_sign setting.
Database tables
| Table | Holds |
|---|---|
idstudio_sequences | The atomic ID counter, one row per scheme/period. |
idstudio_templates | Template identity (name, status, current/published version). |
idstudio_template_versions | Immutable layout versions (validated JSON + checksum). |
idstudio_jobs | Batch-generation jobs (progress, request, idempotency key). |
idstudio_tags | Generated cards (serial, snapshot, validity, status, file refs, lineage). |
id_template | Legacy background-image templates (classic export). |
company_id column — ERPat is database-per-tenant, so each tenant's data is naturally isolated.Settings keys
| Key | Default |
|---|---|
idstudio_id_format | {COMPANY}-{YEAR}-{SEQ:5} |
idstudio_company_code | (empty) |
idstudio_sequence_start | 1 |
idstudio_sequence_reset | yearly |
idstudio_default_validity_days | 365 (blank = never expires) |
idstudio_active_tag_policy | warn |
idstudio_default_template_id | (none) |
idstudio_require_photo / idstudio_require_department | 0 / 1 |
idstudio_auto_allocate | 1 |
idstudio_verification_enabled | 1 |
idstudio_audit_retention_years / idstudio_artifact_retention_years | 7 / 3 |
Permissions
staff_view_company_tag, can_export_card, company_tag_template,
idstudio_settings, idstudio_allocate, idstudio_tags_view,
idstudio_tags_generate, idstudio_tags_manage. (See
Administration for what each gates.)
Audit events
update:idstudio, allocate:idstudio,
create/publish/archive:idstudio_template,
generate/print/issue/revoke/replace/expire:idstudio_tag.
Scheduled job
| Slug | Schedule | Does |
|---|---|---|
expire_idstudio_tags | 30 0 * * * (daily 00:30) | Expire past-validity cards; prune old artifacts per retention. Per-tenant; self-gates on the module. |