Configuration

The ACE Content Developer is configured using a JSON file. The location of the configuration file is specified using the environment variable codeConfigurationFile

For example, the following docker-compose.yml configuration will tell the Content Developer to use the /etc/code/configuration.json file for configuration mounted from the local file ./config/code.json:

version: '3.2'

services:
  ace-code:
    container_name: ace-code
    image: atexproducts/ace.code:${CONTENT_DEVELOPER_VERSION}

    volumes:
        - ./config/code.json:/etc/code/configuration.json

    environment:
      - codeConfigurationFile=/etc/code/configuration.json

Service configuration

The default configuration of the Content Developer works well for local development where most - if not all - services and REST APIs are deployed on the local machine. In cases where the ACE services are located elsewhere, the Content Developer needs to be configured to know where to look.

Services locations are configured in the service section of the configuration file where you can configure the following:

  • A common base Url (service/common/baseUrl) that will be used by all services. If specified, all service location paths (see next item) will automatically be relative to this base Url. Can also be a relative path.
  • A service path for each service (service/<service-name>/path) that tells the Content Developer where the ACE server-side endpoint for the service is located. The service path will automatically be relative to the common base Url (see above) unless it starts with an explicit /, in which case it will always be absolute. Has to be a path and cannot be a Url.

Example configuration:

{
  "service": {
    "common": {
      "baseUrl": "/"
    },

    "ContentEventService": {
      "path": "/content-events",

      "contentTypes": ["articleContent"],
      "eventTypes": ["CREATE", "UPDATE", "DELETE", "WORKFLOW"]
    },

    "UserDataService": {
      "path": "/content-service/user/"
    },

    "AuthenticationService": {
      "path": "/content-service/security/token/"
    },

    "PermissionService": {
      "path": "/content-service/security/permission/"
    },

    "ContentService": {
      "path": "/content-service/content/"
    },

    "ContentInfoService": {
      "path": "/content-service/contentinfo/"
    },

    "FileService": {
      "path": "/file-service/file/"
    },

    "LocalizationService": {
      "path": "/content-service/localization/"
    },

    "TaxonomyService": {
      "path": "/taxonomy-service/"
    },

    "SearchService": {
      "path": "/search-service/"
    },

    "TypeService": {
      "path": "/content-service/type/"
    },

    "ImageService": {
      "path": "/image-service/"
    },

    "WorkspaceService": {
      "path": "/content-service/content/workspace/"
    },

    "ClipboardService": {
      "path": "/clipboard-service/"
    },

    "ViewService": {
      "path": "/content-service/view/"
    },

    "FileDeliveryService": {
      "path": "/file-delivery-service/"
    }
  }
}

Template lists

Whenever a content is created or edited in the Content Developer, an ACE UI presentation template is used. The lists of templates to use is configurable using:

  • The complete list of templates (TemplateService/templateListAlias) as an ACE alias for an ACE UI template list content. This is the full list of templates which will be used in the Content Developer. Content types missing a representing template in this list will not be editable or openable by the Content Developer.
  • The list of templates to use for the content quick creator (TemplateService/templateListQuickCreatorAlias) as an ACE alias for an ACE UI template list content. This is the list of templates which will be presented in the application top bar content creator.

Example configuration:

{
  "TemplateService": {
    "templateListAlias": "ace-starterkit/templateList",
    "templateListQuickCreatorAlias": "ace-starterkit/templateListQuickCreator"
  }
}

Inbox configurations

The right hand side panel in the Content Developer contains two different content inboxes: the Content activity inbox as well as the Workflow inbox. These are both used to monitor content flows in ACE.

Content event service

Both the activity inbox and the workflow inboxes are driven by the Content event service. As such, default configuration that should be applied to both inboxes are configured here:

  • The content types to process (ContentEventService/contentTypes), as an array of content type names. An empty list will mean no content events will be processed at all.
  • The event types to process (ContentEventService/eventTypes), as an array of content event types. An empty list will mean no content events will be processed at all.

Example configuration:

{
  "service": {
    "ContentEventService": {
      "contentTypes": ["articleContent"],
      "eventTypes": ["CREATE", "UPDATE", "DELETE", "WORKFLOW"]
    }
  }
}

Content activity inbox

The following can be configured for the content activity inbox:

  • The content types to show (ContentActivityInbox/contentTypes), as an array of content type names. An empty list will mean the activity inbox will perform an initial search using all content types, but no content events will be processed.
  • The event types to process (ContentActivityInbox/eventTypes), as an array of content event types. An empty list will mean no content events will be processed at all.

Example configuration:

{
  "ContentActivityInbox": {
    "contentTypes": ["articleContent"],
    "eventTypes": ["CREATE", "DELETE", "UPDATE"]
  }
}

Workflow inbox

The following can be configured for the workflow inbox:

  • The content types to show (WorkflowInbox/contentTypes), as an array of content type names. An empty list will mean the workflow inbox will perform an initial search using all content types, but no content events will be processed..
  • The event types to process (WorkflowInbox/eventTypes), as an array of content event types. An empty list will mean no content events will be processed at all.
  • The workflow states to monitor (WorkflowInbox/workflowStates), as an array of workflow state names. An empty list will mean the workflow inbox displays no content at all.

Example configuration:

{
  "WorkflowInbox": {
    "contentTypes": ["articleContent"],
    "eventTypes": ["WORKFLOW"],
    "workflowStates": ["reviewContent", "amend", "legalReview"]
  }
}

Localization / i18n

The following can be configured for Content Developer localization:

  • The localization contexts to use (i18n/localizationContexts), as an array of context names. Each context represents a partial localization in ACE localization. Please see the ACE Core documentation on localization for more information.

Example configuration:

{
  "i18n": {
    "localizationContexts": ["ace-ui", "code", "ace-starterkit"]
  }
}

Content preview

The following can be configured for content preview:

  • The preview base Url (PreviewService/previewBaseUrl) of the preview target, such as a website, as a Url string.
  • The preview variant to use (PreviewService/previewVariant), as a variant name string. This is the name of an ACE preview variant. Whenever a content preview is requested in the Content Developer, the content to preview will be fetched from ACE using this variant.

Example configuration:

{
  "PreviewService": {
    "previewVariant": "webPreview",
    "previewBaseUrl": "http://localhost:9000/ace.preview"
  }
}

Search and faceting

Faceting in the Content Developer can be configured using the Search/faceting configuration property of the configuration in the form of an array of faceting field objects. Each faceting field takes parameters label and name, where label is the human readable string that will be shown in the Content Developer search faceting panel and name is the name of the Solr field to facet on.

Search in the Content Developer can be configured inside the service configuration (see above) of the SearchService in the form of the defaultValues property which is used to control the default behaviour of search. The following default value properties are configurable:

  • The name of the Solr collection (service/SearchService/collection) to use for searching, as a collection name string. Defaults internally (without configuration) to internal.
  • Additional query parameters (service/SearchService/params) that will be sent to the ACE search service with every request.

The following Content Developer configuration example configures three facets as well as some default search parameters:

Example configuration:

{
  "Search": {
    "faceting": [
      {
        "label": "Type",
        "name": "ace_type_s"
      },

      {
        "label": "Subjects",
        "name": "ace_tag_dimension.subjects_ss"
      },

      {
        "label": "Tags",
        "name": "ace_tag_dimension.tags_ss"
      }
    ],

    "maxFacetValues": 50
  },

  "service": {
    "SearchService": {
      "path": "/search-service/",

      "defaultValues": {
        "collection": "internal",

        "params": {
          "rows": 40,
          "df": "text_txt",
          "defType": "edismax"
        }
      }
    }
  }
}