Documentation Index
Fetch the complete documentation index at: https://docs.sensorup.com/llms.txt
Use this file to discover all available pages before exploring further.
Assets Subgraph Reference
The su-assets subgraph provides comprehensive asset management capabilities including asset profiles, properties, relationships, and views.
- Name:
su-assets
- Routing URL:
https://73qfchk50k.execute-api.us-west-2.amazonaws.com/poc/graphql
- Last Updated: 2025-10-09
- SDL: View Schema
Overview
This subgraph owns:
- Asset profiles and their configuration
- Individual assets and their properties
- Asset relationships and hierarchies
- View configurations for UI rendering
- Asset filters for workflow integration
- Asset conversion configurations
Root Types
Query Fields
extend type Query {
assetProfiles: AssetProfiles
assets(profile: ID!): Assets
assetFilters: [AssetSelectionFilter!]
assetFilter(id: ID!): AssetSelectionFilter
assetFilterDownloads: [AssetDownload!]
}
Mutation Fields
extend type Mutation {
updateAssetProfile(input: UpdateAssetProfileInput): AssetProfileMutationResult
putAssetProfileExtension(input: putAssetProfileExtensionInput!): AssetProfileMutationResult
removeAssetProfileExtension(input: removeAssetProfileExtensionInput!): AssetProfileMutationResult
updateAssetProfileViewConfiguration(input: UpdateAssetProfileViewConfigurationInput!): AssetProfileViewConfigurationMutationResult!
updateAssetProfileViewLayout(input: UpdateAssetProfileViewLayoutInput): AssetProfileViewLayoutMutationResult!
updateAssetProfileAssetConversionConfiguration(input: UpdateAssetProfileAssetConversionConfigurationInput!): AssetProfileAssetConversionConfigurationMutationResult!
createAssetFilter(input: CreateAssetFilterInput!, correlationId: String): AssetFilterMutationResult
updateAssetFilter(input: UpdateAssetFilterInput!, correlationId: String): AssetFilterMutationResult
}
Core Types
AssetProfile
Defines the structure and behavior of a class of assets.
type AssetProfile @key(fields: "profile") {
profile: ID!
title: String!
owner: EntityOwner!
properties: [AssetPropertyDefinition!]
propertyMaps: [AssetProfilePropertyMapping!]
displayNameProperty: String!
displayNameTemplate: String
secondaryDisplayNameProperty: String
isDeletedProperty: String
forceAssetStateUpdates: Boolean
relationships: [AssetProfileRelationship!]
assets(first: Int, after: String, filter: AssetFilter): AssetsConnection
assetsExport(...): AssetProfileAssetExport
assetById(id: ID!): Asset
upDatasets: [UpDataset!]
upDataset(dataset: String!): UpDataset
viewConfigurations: [AssetProfileViewConfiguration!]
viewConfiguration(id: ID!): AssetProfileViewConfiguration
assetConversionConfigurations: [AssetProfileAssetConversionConfiguration!]
stateUpdateDatasets: [StateUpdateDataset!]
}
Key Fields:
profile: Unique identifier for this asset profile type
title: Human-readable name
displayNameProperty: Property used for asset display name
properties: Effective properties available on assets
relationships: Defined relationships to other asset profiles
Asset
Individual asset instance.
type Asset @key(fields: "profile id") {
id: ID!
profile: ID!
assetProfile: AssetProfile
modifiedAt: DateTime
geometry: GeoJSONGeometryInterface
properties(only: [String!]): JSONObject
observation: JSONObject
geoJSONFeature: GeoJSONFeature
displayName: String!
secondaryDisplayName: String
related(relationship: ID, params: JSONObject): AssetRelationship
issueSubject: IssueSubject!
isDeleted: Boolean!
}
Key Fields:
id: Unique asset identifier within profile
profile: Reference to asset profile
displayName: Computed display name from profile configuration
properties: Dynamic properties from underlying datasets
observation: Merged state observation
geometry: GeoJSON geometry if geospatial
related: Navigate relationships to other assets
AssetRelationship
Union type for one-to-one or one-to-many relationships.
union AssetRelationship = AssetRelationshipOne | AssetRelationshipMany
type AssetRelationshipOne {
asset: Asset
observation: JSONObject
}
type AssetRelationshipMany {
assets: [Asset!]
observations: [JSONObject!]
}
AssetProfileRelationship
Defines a relationship between asset profiles.
type AssetProfileRelationship {
relationship: ID!
type: AssetProfileRelationshipType! # ONE or MANY
profile: ID!
assetProfile: AssetProfile!
referenceProperty: String
referenceType: AssetProfileRelationshipReferenceType!
lookupProperty: String
lookupType: AssetProfileRelationshipReferenceType!
parameters: [UpSpecificationParameter!]
}
Uses Relay-style cursor pagination:
type AssetsConnection {
pageInfo: PageInfo!
edges: [AssetEdge]
}
type AssetEdge {
node: Asset
}
View Configurations
UI layout and visualization settings:
type AssetProfileViewConfiguration {
id: ID!
name: String
map: AssetProfileViewMap
layouts(mediaTypes: [AssetProfileViewLayoutMediaType!]): [AssetProfileViewLayout!]
}
type AssetProfileViewLayout {
mediaType: AssetProfileViewLayoutMediaType # WEB, MOBILE, PRINTABLE
widgets: [AssetProfileViewWidget!]
}
type AssetProfileViewWidget {
id: ID!
layout: AssetProfileViewLayoutDetails! # x, y, w, h
name: String!
settings: JSONObject!
widget: String!
}
Asset Filters
Reusable asset selections for workflows:
type AssetSelectionFilter @key(fields: "id") {
id: ID!
displayName: String!
description: String
profile: ID!
assetProfile: AssetProfile!
subProfiles: [AssetSelectionFilterRelationship!]
audit: AssetSelectionFilterAudit
}
Entity Extensions
This subgraph extends entities from other subgraphs:
EntityOwner
type EntityOwner
@extends
@key(fields: "username group") {
username: String! @external
group: String! @external
}
IssueSubject
type IssueSubject
@extends
@key(fields: "type reference") {
type: String! @external
reference: ID! @external
assetReference: AssetReference @requires(fields: "type reference")
}
Common Patterns
query GetAssets($profile: ID!, $first: Int!, $after: String) {
assetProfiles {
byId(profile: $profile) {
assets(first: $first, after: $after) {
edges {
node {
id
displayName
modifiedAt
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
}
Update Asset Profile
mutation UpdateProfile($input: UpdateAssetProfileInput!) {
updateAssetProfile(input: $input) {
assetProfile {
profile
displayNameTemplate
}
correlationId
errors {
message
type
}
}
}
Export Assets
query ExportAssets($profile: ID!) {
assetProfiles {
byId(profile: $profile) {
assetsExport(
properties: ["name", "status"],
isExcel: false
) {
csvFileDownloadUrl(exportName: "assets")
}
}
}
}
Type Index
Key types defined in this subgraph:
AssetProfile - Profile definitions
Asset - Individual assets
AssetPropertyDefinition - Property schemas
AssetRelationship - Relationship data
AssetProfileViewConfiguration - UI configurations
AssetSelectionFilter - Reusable filters
PageInfo - Pagination metadata (@shareable)
- GeoJSON types (@shareable)