Design Object

The Design object is a central location where much of the Cordra configuration is stored. For example, the configuration for the UI, authorization, and handle minting are all stored on the Design object. When logged in as a Cordra admin into the UI, the Design Object Admin menu item provides you a way to edit this object directly. The Design object could also be updated using a configuration file on startup; see repoInit.json.

Here are the properties available in the Design object for fine-tuning Cordra behavior:

Property name

Description

ids

See Authentication via Keys.

isReadOnly

While set to true, Cordra will reject object creation, update, or deletion. (Exception: the admin user, only, is allowed to edit the design object, only.)

useLegacySessionsApi

See Legacy Sessions API

useLegacyContentOnlyJavaScriptHooks

See Legacy JavaScript Hooks

useLegacySearchPageSizeZeroReturnsAll

If true, restores former behavior where a search with pageSize=0 returns all results. By default a search with pageSize=0 returns the number of matched objects but no object content.

useLegacyAttributesAsInputForDoipGet

By default set to false. If true, the DOIP API for HTTP Clients will copy request “attributes” into request “input” for GET requests (matching the behavior of Cordra v2.3.0 to v2.4.0).

enableVersionEdits

If true, version objects can be edited. By default, they are immutable.

includePayloadsInReplicationMessages

If true, payloads are included in Kafka messages produced by configuration replicationProducers. By default the payloads are omitted.

disableAuthenticationBackOff

By default, Cordra will slow down authentication attempts for a user after receiving an incorrect password for that user, up to a maximum of 5 seconds. Setting this to true disables the delay.

allowInsecureAuthentication

Allow authentication requests over HTTP. By default, only HTTPS is allowed.

enableTypeChangeViaUpdate

Allow standard 0.DOIP/Op.Update operation to change the type of an object.

adminPublicKey

JSON Web Key that can be used to log in as admin user.

uiConfig

See UI Menu.

authConfig

See Authorization Menu.

handleMintingConfig

See Handle Integration.

handleServerConfig

See Handle Integration.

doip

See DOIP and Examples.

builtInTypes.CordraDesign.javascript

See Hooks for the Design Object and Type Objects.

builtInTypes.CordraDesign.authConfig

See Authorization.

builtInTypes.Schema.javascript

See Hooks for the Design Object and Type Objects.

builtInTypes.Schema.authConfig

See Authorization.

javascript

See Design JavaScript Menu.

repoInit.json

All or part of the Design object can also be modified on startup by including a repoInit.json file in the Cordra data directory. The JSON structure under the design property in the repoInit.json file should match what is expected in the Design object. For example, to add ids that are useful for Authentication via Keys, you could include the following in the repoInit.json file:

{
    "design": {
        "ids": [ "20.500.123/cordra" ]
    }
}