Diary photo observation
What a site diary photo shows (subject, work type, quality, concerns), read from the image.
Part of Projects in the register catalog.
- Register ID
diary_photo_observationUse this name to ask for the register. The API calls it a shelf ID.- Each record is
- An eventSomething that happened at a point in time.
- Status
- DeclaredDefined, and fills when a source produces its first record.
- Data
- OrganisationPrivate to each organisation's own workspace.
- Version
- v1Current version.
Standards
This register holds records these standards and laws ask for. Holding them does not by itself certify compliance.
Connectors
Connected today
Demiton keeps this register current from these systems now.
No system fills this register yet.
On the roadmap
Systems in the planned connector rollout that can fill this register. Partial means the system holds only some of its fields.
- MittiPartial
- Oracle Aconex
- Procore
Fields
16 fields: 9 required, 7 optional.
Required
Every record carries these fields.
- observation_idText
Stable identity of the per-photo observation:
{parent diary source id}:{photo ordinal}. Maps toFact.source_id/external_id.Example:
FR-91004:0- source_systemText
Originating system of the parent record;
ASSIGNARtoday. Stamped from the diary, not chosen by the vision pass.Example:
ASSIGNAR- occurred_atDate and time
Time of the parent diary event, inherited unchanged; the observation has no independent event time.
Example:
2026-07-14T07:45:00Z- parent_diary_source_idText
Source id of the
site_diaryfact this photo belongs to; the join back to the diary and the prefix ofobservation_id.Example:
FR-91004- photo_indexWhole number
Zero-based ordinal of the photo within the diary, assigned in
_photo_urlsorder; the other half of the identity.Example:
0- captionText
One factual sentence describing the image; the shelf's payload and
Fact.content.Example:
Kerb and channel formwork placed along northern verge, re…- subjectText
What the photograph physically shows.
Example:
kerb and channel formwork- financial_periodDate
Declared
FINANCIAL_PERIODaxis; derived fromoccurred_atwhen not inherited.Example:
2026-07-01- fact_classText
Provenance class: this fact is a model's reading of an image, not a value the source reported.
Example:
vision_observation
Optional
Present when the source system records them.
- work_typeText
The civil work visible, or the literal
none_visible.Example:
kerb_and_channel- qualityText
poor)Example:
acceptable- concernsList
Review flags; the vision enum is
identifiable_people,vehicle_plate,third_party_branding,unsafe_practice_visible,poor_legibility,not_construction.- source_imageGroup of fields
Dimensions and container format of the fetched image, from the encoder.
- projectText
Declared
PROJECTaxis, inherited from the diary.Example:
BWG-2025-001- assetText
Declared
ASSETaxis, inherited from the diary.- legal_entityText
Declared
LEGAL_ENTITYaxis, inherited from the diary.
Example record
A sample from Bridgeworks Group, Demiton's demonstration company. The values are illustrative; the shape is exactly what the contract describes.
{ "caption": "Kerb and channel formwork placed along northern verge, ready for pour.", "concerns": [], "fact_class": "vision_observation", "financial_period": "2026-07-01", "observation_id": "FR-91004:0", "occurred_at": "2026-07-14T07:45:00Z", "parent_diary_source_id": "FR-91004", "photo_index": 0, "project": "BWG-2025-001", "quality": "acceptable", "source_system": "ASSIGNAR", "subject": "kerb and channel formwork", "work_type": "kerb_and_channel"}Use this contract
The contract is a standard JSON Schema (draft 2020-12) document, so any JSON Schema validator can check a record against it. Keywords starting with x-demiton- add Demiton's own meaning, such as units and requiredness, and validators ignore them.
https://docs.demiton.io/registers/diary_photo_observation/v1.jsonShow the full JSON Schema
Loading the schema…
Talk to the team
Tell us what you run - your ERP, field, payroll and document systems - and we will show you the registers Demiton would keep current from them, on your data, in a 30-minute call.