Skip to content

Business Reference Conventions ​

Every governed entity in OrviQ has two identities, and they are never confused.


The two-identity model ​

Internal identifierBusiness reference
PurposeTechnical primary keyHuman-facing identity
ShapeOpaque, system-generatedPREFIX-YYYY-NNNN
Used byRelationships, links, API routes, query parametersDisplays, lists, drawers, registers, audit views, exports
Shown to usersNeverEverywhere
ChangesNeverNever

Human-facing references never expose internal identifiers

No register, drawer, export, notification, calendar entry or deep link presents a raw internal identifier to a user.

Deep links resolve business references directly: opening INC-2026-0014 works on first load, on refresh, and from Workbench tasks and notifications, with no technical key leaking into the address.


Format ​

PREFIX-YYYY-NNNN

ElementMeaning
PREFIXThe entity type
YYYYThe year of creation
NNNNA strictly sequential number within the tenant, entity type and year

Properties:

  • Tenant-scoped — two tenants both have a CTL-2026-0001, and they are different controls
  • Entity-type-scoped — a control and a risk both created first in 2026 are CTL-2026-0001 and RSK-2026-0001
  • Year-scoped — sequences restart each year
  • Immutable — assigned once at creation, never regenerated or reassigned
  • Never derived from a UUID
  • Never contains department, owner, or any other mutable organisational attribute

The prefix registry ​

EntityPrefixExample
Third PartyTPTP-2026-0018
EngagementENGENG-2026-0041
RiskRSKRSK-2026-0014
FindingFNDFND-2026-0071
Action PlanACTACT-2026-0188
AssessmentASMASM-2026-0004
ControlCTLCTL-2026-0041
Audit EngagementAUDAUD-2026-0003
PolicyPOLPOL-2026-0009
AssetASTAST-2026-0001
ScopeSCPSCP-2026-0007
MappingMAPMAP-2026-0233
ConnectionCONCON-2026-0001
CollectorCOLCOL-2026-0003
Collector RunCRNCRN-2026-1841
Evidence AssertionASNASN-2026-0442
Indicator DefinitionINDIND-2026-0009
Indicator ResultINRINR-2026-8813
ExceptionEXCEXC-2026-0031
Requirement AssessmentRASRAS-2026-0117
Regulatory InspectionINSINS-2026-0002
Business Impact AnalysisBIABIA-2026-0003
Continuity PlanBCPBCP-2026-0004
Resilience ExerciseEXEEXE-2026-0009
Resilience AssessmentRESRES-2026-0005
IncidentINCINC-2026-0014
Framework AdoptionFADFAD-2026-0004
Applicability RecordAPPAPP-2026-0117

Generation guarantees ​

Sequence generation is centralised. Every module calls the same service rather than maintaining its own counter.

GuaranteeHow
No duplicatesAn atomic increment on a shared counter, guarded by a database advisory lock keyed on tenant, entity type and year
Race-free across processesThe advisory lock serialises writers across connections and processes
No scanningNever a SELECT MAX(id)+1, which is race-prone without an explicit lock
Per-tenant uniquenessBacked by a partial unique index on tenant and business reference
ImmutablePersisted once at creation

Why this matters more than it sounds

A reference scheme that occasionally issues duplicates, or that renumbers records, destroys the ability to cite a record in a board minute, a regulatory response or an audit workpaper.

Every reference in this documentation's worked examples is the shape a real one takes, and every real one is stable for the life of the record.


Sequences after a backfill ​

Where an existing module is brought onto the standard, historical records are backfilled deterministically:

  • Ordered by tenant, creation time ascending, with the internal identifier as a tiebreaker
  • One sequence per tenant and year-of-creation, so a historical record receives the reference its actual creation year would have assigned
  • The live counter is primed to continue immediately after the highest backfilled number

Backfills are idempotent and safe to rerun.


Reading a reference ​

EXC-2026-0031 tells you:

  • It is an exception
  • It was created in 2026
  • It was the 31st exception created in this tenant that year

It tells you nothing about who owns it, which department raised it, or what it relates to — deliberately. Those are mutable attributes and belong in fields, not in an identifier that must never change.


OrviQ Enterprise Governance, Risk & Compliance Platform