Content

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 formatter argument 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

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

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

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

Additional 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

The 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

The 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

A 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

An 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

An 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

The 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

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