- Documentation
- /
- Gist
- /
- Overview
Overview
What this is
GIS Tenancy Portal (gist) is the gis_tenancy_dslcore v0.2 specification baseline rendered
as a working app: a multi-tenant geospatial coordination platform. Each organisation's tenant
holds its own GIS layers and spatial features, shares them selectively with other tenants, and
relies on a spatial engine to detect how features interact across tenant boundaries — surfacing
those interactions as events, disclosing them to the right party under controlled profiles, and
reconciling the shared picture.
It is deliberately not a full GIS replacement. It exists to exercise tenancy and need-to-know access, cross-tenant sharing, spatial relationships, events/triggers, disclosure-controlled payloads, Orchestrator delivery and governance/reconciliation.
The domain, in one paragraph
An organisation owns one or more tenants (each with domains); users hold roles with permissions scoped to tenant/layer/feature. A tenant's GIS layers contain spatial features (geometry + properties), and layer shares grant another tenant a level of access (metadata / geometry / read / export). Feature responsibility records who owns or regulates each feature. A spatial evaluation run compares features and records spatial relationships (intersects, touches, near…); a spatial rule defines which relationships matter and at what severity. A matching relationship, via a trigger definition, raises a spatial event, which is delivered (event delivery) to the Orchestrator and — where a disclosure profile allows — disclosed through a data transfer. Every material action is an audit event, and cross-tenant state is verified by reconciliation checks.
The 21 models by area
🏢 Organisation & tenancy
Organisation · Tenant · TenantDomain — the ownership and tenant-isolation backbone.
🔑 Access & sharing
User · Role · UserRole · Permission · LayerShare — who can do what, and which layers cross tenant boundaries.
🗺️ Spatial data
GISLayer · SpatialFeature · FeatureResponsibility — the layers, the geometry, and who's responsible for each feature.
📐 Spatial evaluation
SpatialEvaluationRun · SpatialRelationship · SpatialRule — the engine runs, the detected relationships, and the rules that judge them.
⚡ Events & triggers
TriggerDefinition · SpatialEvent · EventDelivery — what to watch, the events raised, and their delivery to consumers (the Orchestrator).
🔒 Disclosure & integration
DisclosureProfile · DataTransfer · AuditEvent — what may be disclosed, the transfers that carry it, and the audit trail.
🔁 Reconciliation
ReconciliationCheck — verifying that shared/disclosed state stays consistent across tenants.
The demo scenario
The Queensland Demo Transport Agency (transport tenant) proposes the Northern Connector
Upgrade — road project RP-2026-001 on its road_projects layer. A spatial evaluation
run (EVAL-2026-0101) compares it against four other tenants' features and records four
relationships:
| Relationship | Target (tenant) | Type | Rule | Severity |
|---|---|---|---|---|
| RP-2026-001 → ML-1032 | Mining Lease (mining) | intersects | ROAD_INTERSECTS_MINING_LEASE |
warning |
| RP-2026-001 → EA-076 | Environmental Constraint Area (regulator) | intersects | ROAD_INTERSECTS_ENVIRONMENT_AREA |
critical |
| RP-2026-001 → PIPE-44 | Regional Gas Pipeline (utility) | near (197 m ≤ 250 m) | ROAD_NEAR_PIPELINE |
warning |
| RP-2026-001 → TX-220-07 | 220 kV Transmission Line (utility) | intersects | ROAD_INTERSECTS_TRANSMISSION |
advisory |
Boundary case RP-2026-003 touches the lease (advisory). Each match raises a spatial
event (EVT-2026-000101…105), delivered to the DSLCore Orchestrator
(http://orchestrator:8000/api/v1/events, idempotent) and disclosed under the coordination_basic
profile — which shares geometry and coordination properties but denies confidential business
fields (internal_target_model, commercial_notes, resource_estimate). The whole batch is an
outbound data transfer, audited, and reconciled (RECON-2026-0011, matched).
The v0.2 relationship lifecycle is seeded too: RP-2026-002 (Eastern Bypass) once intersected
the lease but the relationship ceased after realignment (EVT-2026-000090,
gis.spatial.relationship_ceased) — and its reconciliation is an open exception
(STALE_RELATIONSHIP) awaiting resync with the Orchestrator.
98 rows across all 21 models. Geometry is stored/exchanged in EPSG:4326; metric operations (distance, overlap area) are computed in EPSG:7856 (documented; Phase 2 runtime).