generated: '2026-09-06' method: derived source: openapi/_original/actionstreamer-openapi-original.json note: 'Entity graph derived from OpenAPI components.schemas: entities are the 32 schemas that also carry an operation tag; relationships are derived from ID reference fields resolving to another schema of the same name. No relationship is asserted that is not present as a typed field in the published contract. Identifiers are integer surrogate keys (no prefixed string ids).' id_convention: style: integer surrogate key pattern: ID prefixed_ids: false evidence: openapi/_original/actionstreamer-openapi-original.json#/components/schemas root_entity: Device root_entity_note: 'Device is the hub of the graph: 12 of the 32 entities carry a deviceID foreign key. The platform models a fleet of connected cameras/wearables, and nearly every media, telemetry and command record hangs off a device.' entity_count: 32 relationship_count: 28 schema_count: 107 entities: - name: APIKey primary_key: null field_count: 8 operations: 5 has_many: null - name: Agent primary_key: null field_count: 12 operations: 6 has_many: - Event - EventPreset - LogMessage - name: AgentType primary_key: null field_count: 4 operations: 1 has_many: - Agent - Event - EventPreset - EventType - name: AudioClip primary_key: null field_count: 16 operations: 15 has_many: null - name: CollectionItem primary_key: null field_count: 5 operations: 4 has_many: null - name: Device primary_key: null field_count: 24 operations: 14 has_many: - Agent - AudioClip - DeviceHealth - DeviceWifiConnection - Event - EventPreset - File - Image - LogMessage - Stream - VideoClip - name: DeviceHealth primary_key: null field_count: 5 operations: 8 has_many: null - name: DeviceWifiConnection primary_key: null field_count: 5 operations: 7 has_many: null - name: Event primary_key: null field_count: 18 operations: 12 has_many: - Stream - name: EventPreset primary_key: null field_count: 19 operations: 9 has_many: null - name: EventStatus primary_key: null field_count: 4 operations: 1 has_many: null - name: EventType primary_key: null field_count: 6 operations: 1 has_many: - Event - EventPreset - name: File primary_key: null field_count: 11 operations: 5 has_many: - AudioClip - Image - Package - VideoClip - name: Image primary_key: null field_count: 13 operations: 13 has_many: null - name: LogMessage primary_key: null field_count: 8 operations: 3 has_many: null - name: MultifactorAuth primary_key: null field_count: 9 operations: 9 has_many: null - name: Notification primary_key: null field_count: 8 operations: 5 has_many: null - name: Package primary_key: null field_count: 10 operations: 7 has_many: null - name: PermissionType primary_key: null field_count: 4 operations: 1 has_many: null - name: Project primary_key: null field_count: 7 operations: 7 has_many: null - name: Session primary_key: null field_count: 9 operations: 5 has_many: - SessionVariable - name: SessionVariable primary_key: null field_count: 6 operations: 4 has_many: null - name: SharedItem primary_key: null field_count: 12 operations: 6 has_many: null - name: SignInHistory primary_key: null field_count: 11 operations: 2 has_many: null - name: Stream primary_key: null field_count: 12 operations: 8 has_many: null - name: Tag primary_key: null field_count: 3 operations: 2 has_many: null - name: TimeZone primary_key: null field_count: 2 operations: 2 has_many: null - name: Token primary_key: null field_count: 1 operations: 2 has_many: null - name: User primary_key: null field_count: 20 operations: 7 has_many: null - name: UserBrowser primary_key: null field_count: 12 operations: 5 has_many: null - name: VideoClip primary_key: null field_count: 21 operations: 14 has_many: null - name: WifiConnection primary_key: null field_count: 6 operations: 6 has_many: - DeviceWifiConnection relationships: - from: Agent to: Device type: belongs_to via: deviceID - from: Agent to: AgentType type: belongs_to via: agentTypeID - from: AudioClip to: Device type: belongs_to via: deviceID - from: AudioClip to: File type: belongs_to via: fileID - from: CollectionItem to: Collection type: belongs_to via: collectionID - from: DeviceHealth to: Device type: belongs_to via: deviceID - from: DeviceWifiConnection to: Device type: belongs_to via: deviceID - from: DeviceWifiConnection to: WifiConnection type: belongs_to via: wifiConnectionID - from: Event to: Device type: belongs_to via: deviceID - from: Event to: AgentType type: belongs_to via: agentTypeID - from: Event to: Agent type: belongs_to via: agentID - from: Event to: EventType type: belongs_to via: eventTypeID - from: EventPreset to: Device type: belongs_to via: deviceID - from: EventPreset to: AgentType type: belongs_to via: agentTypeID - from: EventPreset to: Agent type: belongs_to via: agentID - from: EventPreset to: EventType type: belongs_to via: eventTypeID - from: EventType to: AgentType type: belongs_to via: agentTypeID - from: File to: Device type: belongs_to via: deviceID - from: Image to: Device type: belongs_to via: deviceID - from: Image to: File type: belongs_to via: fileID - from: LogMessage to: Device type: belongs_to via: deviceID - from: LogMessage to: Agent type: belongs_to via: agentID - from: Package to: File type: belongs_to via: fileID - from: SessionVariable to: Session type: belongs_to via: sessionID - from: Stream to: Device type: belongs_to via: deviceID - from: Stream to: Event type: belongs_to via: eventID - from: VideoClip to: Device type: belongs_to via: deviceID - from: VideoClip to: File type: belongs_to via: fileID