Skip to main content

Permit ๐Ÿ“

Maturity

Official URL: https://bcgov.github.io/nr-pies/docs/spec/element/resource/permit

JSON Schema URL: https://raw.githubusercontent.com/bcgov/nr-pies/refs/heads/main/docs/spec/element/resource/permit.schema.json

Represents a permit. A permit may capture both on hold period information and process event history throughout an application process.

Scopeโ€‹

This resource type is intended to represent the set of properties associated with a permit record. A permit captures both on hold period information and process event history throughout the application process.

This resource type is transmitted within a Record message by setting asset_kind to PERMIT. A Permit is defined as an independent, composable resource type and may be used in other message contexts.

Refer to Record for details on the message envelope pattern and how resource types are selected.

Structureโ€‹

NameCardinalityTypeDescription & Constraints
on_hold_event_set0..1CodingEventA set of CodingEvents. Represents a set of on hold concepts at a specific event in time.
process_event_set0..1ProcessEventA set of ProcessEvents. Represents a set of unique process concepts at a specific event in time.

Specificationโ€‹

Loading ....

Implementation Guidanceโ€‹

The Permit resource type defines specific constraints for maintaining reliable process history within the Application Process and On Hold Process workflows. It is designed to aggregate CodingEvent and ProcessEvent resources respectively.

When a Permit resource is aggregated and transmitted, the following constraints apply to maintain reliable process history:

Temporal Integrity and Workflowโ€‹

The process_event_set represents the lifecycle of a record. To ensure this history is actionable for auditing and reporting, implementations should follow these constraints:

Implicit Linear Flowโ€‹

The application process follows an implicit chronological progression (such as from SUBMITTED to TECHNICAL_REVIEW to ALLOWED).

  • While the message may represent a subset of data, the events within the set should be sequence-aware.
  • "Backward" jumps in state are strongly discouraged in the Application Process workflow.

Reference the Canonical Flow in the Application Process code system for specific details.

Uniqueness of Event Setsโ€‹

To maintain a clean parsable process event sequence, all process_event_set elements must have unique codes.

  • Systems shall not emit or repeat multiple active process_event entries with the same code for the same record.
  • Map business domain transitions directly to the Application Process code system. Avoid intermediary code transformations that alias or misrepresent the source event.

Handling Holds and Overlapsโ€‹

When a process is put on hold (such as waiting for applicant information during a technical review), use the on_hold_event_set to provide additional context.

  • A process event that is stalled should remain open while its associated on hold events explain the delay.
  • Populate the on_hold_event_set with granular events to explain the delay. This enables recipient systems to calculate the "net time" by subtracting on hold duration from total process_event duration.

The Permit resource type is intended to represent a permit record and its full lifecycle across the Application Process. In addition, it also provides tracking capabilities for On Hold Process.

It provides dual tracking capabilities for both on hold events and process events, allowing systems to maintain a complete history of the permit's journey:

  • on_hold_event_set: Captures any periods when permit processing was suspended or placed on hold, typically due to missing information or other blockers.
  • process_event_set: Documents the progression through defined process stages (e.g., APPLICATION, TECH_REVIEW_COMMENT, REFERRAL) with associated status information.

Systems managing permit records should maintain both event histories as necessary.

Referencesโ€‹