Media Center

Added in: release-2026-03

The top-level mediaCenter project config property has been added to store any configurations which affect all media types. It includes the Usage Purposes and License Profiles configuration used by the Usage Log feature.

The existing configuration of the Media Library is somewhat fragmented:

The mediaCenter project config property can be defined as follows:

mediaCenter: {
  usagePurposes: [
    {
      // internal purpose: records usage automatically on publish
      handle: 'web',
      label: {
        en: 'Web',
        de: 'Web'
      },
      internal: true,
      contentType: ['regular'],
      recordUsageLogEntry: 'recordWebUsage'
    },
    {
      // external purpose: usage happens outside Livingdocs, entries are recorded manually
      handle: 'print',
      label: {
        en: 'Print',
        de: 'Druck'
      },
      paramsSchema: [
        {
          handle: 'page',
          type: 'li-integer',
          ui: {
            label: {
              en: 'Page',
              de: 'Seite'
            }
          }
        }
      ]
    }
  ],
  licenseProfiles: {
    approvalTaskHandle: 'licenseApproval',
    profiles: [
      {
        handle: 'freelancer',
        label: {en: 'Freelancer', de: 'Freischaffende'},
        color: '#e0b32d',
        approvalRequired: false,
        rules: {
          print: {costClass: 'low', billingMode: 'always'}
        }
      }
    ]
  }
}

Usage Purposes

Added in: release-2026-07

mediaCenter.usagePurposes defines the named publication contexts (Web, Print, Newsletter, …) used by the usage log and by license profiles. It replaces mediaCenter.usageLog.purposes, which was removed in release-2026-07.

Every usage purpose is either internal (maps to Livingdocs content types, records usage automatically on publish, entries are read-only in the editor) or external (usage happens outside Livingdocs, entries are recorded manually). An internal purpose sets internal, contentType and recordUsageLogEntry together; an external purpose sets none of them.

Each purpose supports:

  • handle (required): unique handle of the purpose.
  • label (required): translatable label shown in the UI.
  • internal (internal purposes): set to true. Entries of internal purposes cannot be created or edited manually in the editor.
  • contentType (internal purposes): a content type handle or an array of handles. Documents of these content types resolve to this purpose. A content type may be matched by at most one purpose.
  • recordUsageLogEntry (internal purposes, required): handle of a function registered with liServer.registerRecordUsageLogEntryFunctions(), called on publish to record the usage log entry. Entries are recorded as pending when the function is missing or fails, as a safety net.
  • paramsSchema (optional): metadata-style field definitions recorded with each usage log entry.

License Profiles

Added in: release-2026-07

mediaCenter.licenseProfiles defines the license profiles that can be assigned to media library entries and the task used for license approvals. Please see the License Profiles guide for the full configuration and behavior.

Usage Log

Added in: release-2026-03

Please see the Usage Log section of the Media Library guide for further information.