Content
Overview
Content represents files and documents stored in the Finale system. This collection manages uploaded files, attachments, and other binary content with associated metadata. Content items can be images, documents, PDFs, or any other file type that needs to be stored and referenced within the system.
Each content record tracks the physical file location, storage service, file size, and MIME type. The system stores files in cloud storage services and maintains metadata about each file for efficient retrieval and management. Content items are typically referenced by other entities - for example, products can have an image attachment through the imageTooltip field which returns a Content object containing the product's image file and metadata.
The content collection supports querying by contentUrl for direct lookup of specific files, as well as browsing all content with standard pagination. Files are stored externally with the fileUrl providing the actual download location, while the contentUrl serves as the unique identifier within Finale.
Content metadata includes descriptive information like description and timestamps (createdDate, lastUpdatedDate) that help track when files were uploaded or modified. Content types and document types (contentTypeId, documentTypeId) provide categorization for different kinds of files, enabling filtering and organization of stored content.
The serviceName field indicates which cloud storage service hosts the file, supporting scenarios where content may be distributed across multiple storage backends. The metaData field stores additional arbitrary information about the content as needed for specific use cases.
GraphQL API
The content collection provides access to content data via the GraphQL API. All queries use the Relay connection specification with cursor-based pagination.
Query Name: contentViewConnection
Available Features:
- Cursor-based pagination (first/last/after/before)
- 2 filter options
- 3 sortable fields
Query Examples
Basic Query
The content collection is accessed via the contentViewConnection query, which returns a Relay-style connection with pagination support.
query {
contentViewConnection(first: 10) {
edges {
node {
}
}
pageInfo {
hasNextPage
endCursor
}
}
}Pagination
Use cursor-based pagination to retrieve large datasets:
# First page
query {
contentViewConnection(first: 50) {
edges {
node { contentTypeId }
}
pageInfo {
hasNextPage
endCursor
}
}
}
# Subsequent pages
query {
contentViewConnection(first: 50, after: "cursor-from-previous-page") {
edges {
node { contentTypeId }
}
pageInfo {
hasNextPage
endCursor
}
}
}Filtering
Apply filters to narrow results (see Filters section for all available options):
query {
contentViewConnection(
first: 10
contentUrl: "/finaleengineer/api/content/100000"
) {
edges {
node { contentTypeId }
}
}
}Sorting
Sort results by one or more fields:
query {
contentViewConnection(
first: 10
sort: [{ field: "contentUrl", mode: "desc" }]
) {
edges {
node {
contentTypeId
contentUrl
}
}
}
}Fields
This collection has 11 fields:
- 11 simple fields
- 0 enum fields (with predefined values)
- 0 parameterized fields (accept query options)
Note on Field Formatting: All scalar fields support the
formatterargument to control output format. Available options:"html","none","abbreviated","blank-zero". Some fields have a default formatter (shown below). See the Formatting guide for details.
Note on Sorting: Field sortability may vary depending on the UI context and query parameters used. Some parameter options explicitly disable sorting (marked with ⚠️ not sortable).
Simple Fields
These fields return values directly without additional options.
contentUrl
contentUrlThe unique identifier for this content item within Finale. This URL is automatically generated by the server and serves as the primary reference key when linking to content from other entities like products or jobs. Use this value in queries to retrieve a specific content item directly.
IMPORTANT: Treat URL values as opaque strings supplied by the server. Do not attempt to parse, interpret, or construct URL values manually:
- ID values embedded in URLs may differ from entity ID values
- The URL structure is an internal implementation detail subject to change
- Manually constructing URLs can lead to bugs and system errors
- Always use URL values exactly as provided by the API
Label: Content URL
GraphQL Type: String
Sortable: Yes
fileUrl
fileUrlThe URL where the file is stored and can be downloaded. This URL is automatically generated by the server and points to the physical file location in cloud storage. Use this URL to retrieve the file contents for display or download. The file URL is separate from the contentUrl to allow flexibility in storage locations.
IMPORTANT: Treat URL values as opaque strings supplied by the server. Do not attempt to parse, interpret, or construct URL values manually:
- The URL structure is an internal implementation detail subject to change
- Manually constructing URLs can lead to bugs and system errors
- Always use URL values exactly as provided by the API
Label: File URL
GraphQL Type: String
Sortable: No
serviceName
serviceNameThe name of the cloud storage service hosting this file. Finale can store content across multiple storage backends, and this field indicates which service is currently storing this particular file. This supports scenarios where content may be migrated between storage providers or distributed across different storage systems.
Label: Service Name
GraphQL Type: String
Sortable: No
metaData
metaDataAdditional metadata about the content stored as a string. This field can contain arbitrary information specific to the content type or use case, such as original filename, upload source, or custom attributes. The format and structure of this metadata may vary based on how the content is used.
Label: Metadata
GraphQL Type: String
Sortable: No
mimeType
mimeTypeThe MIME type of the file, such as "image/jpeg", "application/pdf", or "text/csv". This standard content type identifier helps applications understand how to handle and display the file. The MIME type is determined when the file is uploaded and stored with the content metadata.
Label: MIME Type
GraphQL Type: String
Sortable: No
size
sizeThe file size in bytes. This value helps with storage management, download estimation, and displaying file size information to users. The size is captured when the file is uploaded and remains constant unless the file is replaced.
Label: Size
GraphQL Type: Int
Sortable: No
description
descriptionA human-readable description of the content. This field provides context about what the file contains or its purpose. Descriptions help users identify and manage content items without needing to download and view each file.
Label: Description
GraphQL Type: String
Sortable: No
contentTypeId
contentTypeIdAn identifier indicating the category or type of content. This field helps organize and filter content items by their purpose or nature, such as product images, reports, or documents. The specific values depend on the content type system configured in your Finale instance.
Label: Content Type
GraphQL Type: String
Sortable: No
documentTypeId
documentTypeIdAn identifier for the document type classification. This field provides finer-grained categorization within content types, enabling more specific organization of documents. Document types help differentiate between various kinds of files that may serve different business purposes.
Label: Document Type
GraphQL Type: String
Sortable: No
createdDate
createdDateThe date and time when this content item was initially created or uploaded to the system. This timestamp helps track content age and can be used for sorting or filtering content by upload date.
Label: Created Date
GraphQL Type: String
Sortable: Yes
lastUpdatedDate
lastUpdatedDateThe date and time when this content item was last modified or updated. This timestamp changes when content metadata is updated or when the file itself is replaced. Useful for tracking content freshness and recent changes.
Label: Last Updated
GraphQL Type: String
Sortable: Yes
Relations
No relations available.
Filters
contentUrl
- Label: Content URL
- Type: String
- Enabled: Yes
Filter Type: Text value
This filter accepts freeform text values.
Usage Example:
query {
contentViewConnection(
first: 10
contentUrl: "/finaleengineer/api/content/100000"
) {
edges {
node {
name
contentUrl
}
}
}
}sort
- Label: Sort
- Type: List|sort
- Enabled: Yes
Filter Type: Text value
This filter accepts freeform text values.
Usage Example:
query {
contentViewConnection(
first: 10
sort: "name"
) {
edges {
node {
name
sort
}
}
}
}