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:

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:

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:

Simple Fields

contentUrl

The 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.

Label: Content URL GraphQL Type:String Sortable: Yes

fileUrl

The 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.

Label: File URL GraphQL Type:String Sortable: No

serviceName

The 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.

Label: Service Name GraphQL Type:String Sortable: No

metaData

Additional metadata about the content stored as a string. This field can contain arbitrary information specific to the content type or use case.

Label: Metadata GraphQL Type:String Sortable: No

mimeType

The MIME type of the file, such as "image/jpeg", "application/pdf", or "text/csv".

Label: MIME Type GraphQL Type:String Sortable: No

size

The file size in bytes. This value helps with storage management and displaying file size information to users.

Label: Size GraphQL Type:Int Sortable: No

description

A human-readable description of the content.

Label: Description GraphQL Type:String Sortable: No

contentTypeId

An identifier indicating the category or type of content.

Label: Content Type GraphQL Type:String Sortable: No

documentTypeId

An identifier for the document type classification.

Label: Document Type GraphQL Type:String Sortable: No

createdDate

The date and time when this content item was initially created or uploaded to the system.

Label: Created Date GraphQL Type:String Sortable: Yes

lastUpdatedDate

The date and time when this content item was last modified or updated.

Label: Last Updated GraphQL Type:String Sortable: Yes

Relations

No relations available.

Filters

contentUrl

Filter Type: Text value

Usage Example:

query {
  contentViewConnection(
    first: 10
    contentUrl: "/finaleengineer/api/content/100000"
  ) {
    edges {
      node {
        name
        contentUrl
      }
    }
  }
}

sort

Filter Type: Text value

Usage Example:

query {
  contentViewConnection(
    first: 10
    sort: "name"
  ) {
    edges {
      node {
        name
        sort
      }
    }
  }
}