Skip to main content

Configuration reference

Learn all available configuration options.

All parameters are public unless otherwise noted. Nested parameters are written with periods between levels. For example, for this entry:

public:
issuance:
enabled:
urlScheme:

The first parameter is issuance.enabled and the second parameter is issuance.urlScheme.

format

The system supports the following credential formats:

typeResulting credential
SD_JWT_VCIETF SD-JWT VC
MDOCISO mdoc
JSON_LD_BBSPLUSW3C VCDM 2.0 with BBS+ Data Integrity proof
JSON_LD_CLASSICW3C VCDM 2.0 with Data Integrity proof
SD_JWTW3C VCDM 2.0 with enveloping SD-JWT proof
JWTW3C VCDM 2.0 with enveloping JWT proof
PHYSICAL_CARDW3C VC Barcodes (verification only)

format params

NameTypeDefaultDescription
leewaynumberundefinedTolerance allowed, in seconds, in time and date variance between issuer and holder.
msoExpiresInnumberundefinedThe time, in seconds, after which an mdoc can no longer be validated; cannot use fractions of a second.
msoExpectedUpdateInnumberundefinedThe time, in seconds, after which the issuer expects the wallet to request a new MSO for an mdoc.
msoMinimumRefreshTimenumberundefinedThe minimum time, in seconds, that a wallet must wait before a new MSO can be returned.
embedLayoutPropertiesbooleanfalseIf true, credential design properties are embedded in the metadata field of schemas.
allowedContextsurlSee the list.The list of allowed @contexts, if one has been specified.
swiyuModebooleanfalseIf true, credential formatting is adjusted to interoperate with the Swiss e-ID "swiyu" Public Beta.

allowedContexts

To protect a JSON-LD Data Integrity proof from post-issuance manipulation via @context manipulation, Procivis One filters all JSON-LD credentials against an allow list.

The system checks the contexts during the verification process, only allowing the context defined by the schema plus any contexts in the allowedContexts params. If a presentation contains any additional context it will be invalidated.

If no value is entered in the allowedContexts param, the system defaults to allowing the following contexts:

If any value is entered in the allowedContexts param, the default values no longer apply and must be added to be allowed.

issuanceProtocol

The system supports the following issuance protocols:

typeDescription
OPENID4VCI_DRAFT13OpenID for Verifiable Credential Issuance - draft 13 (ID-1)
OPENID4VCI_DRAFT13_SWIYUOID4VCI - draft 13, adjusted to interoperate with the Swiss e-ID "swiyu" Public Beta

issuanceProtocol params

NameTypeDefaultDescription
preAuthorizedCodeExpiresInnumberundefinedExpiration time, in seconds, for code authorizing wallet to obtain credentials.
tokenExpiresInnumberundefinedExpiration time, in seconds, for an access token issued to a wallet.
refreshExpiresInnumberundefinedExpiration time, in seconds, for a refresh token issued to a wallet.
enabledbooleantrueSet to false to disable issuance via OID4VCI.
redirectUri.enabledbooleanfalseSet to false to disable setting a redirect URI during credential creation.
redirectUri.allowedSchemesstringundefinedList of URI schemes (for example https or myapp) allowed for redirect URIs during credential creation. If empty or not configured, all redirect URIs will be rejected.
urlSchemestringopenid-credential-offerSpecify the credential offer URL scheme.

verificationProtocol

The system supports the following verification protocols:

typeDescription
OPENID4VP_DRAFT20OpenID for Verifiable Presentations - draft 20
OPENID4VP_DRAFT20_SWIYUOID4VP - draft 20, adjusted to interoperate with the Swiss e-ID "swiyu" Public Beta
OPENID4VP_DRAFT25OpenID for Verifiable Presentations - draft 25
ISO_MDLISO/IEC 18013-5:2021
SCAN_TO_VERIFYVerifiable Credential Barcodes v0.7

verificationProtocol params

All parameters apply only to instances of OID4VP:

NameTypeDefaultDescription
useRequestUribooleanfalseIf true, the proof requests you make will use request URIs with which the wallet must make HTTP calls to fetch the request. This is recommended if using QR codes. If false, the proof request will be readable from the resulting URL without an HTTP call.
enabledbooleantrueSet to false to disable verification via OID4VCP.
redirectUri.enabledbooleantrueSet to false to disable setting a redirect URI during proof request creation.
redirectUri.allowedSchemesstringundefinedList of URI schemes (for example https or myapp) allowed for redirect URIs during proof request creation. If empty or not configured, all redirect URIs will be rejected.
urlSchemeopenid4vp | mdoc-openid4vpopenid4vpFor an ISO mdoc instance of the OID4VC exchange, use mdoc-openid4vp.
x509CaCertificatestringundefinedList of Certificate Authority (CA) certificates used to validate verifier authenticity. Any verifier must present a certificate that is signed by one of these trusted CAs. Connection attempts from verifiers with certificates signed by unlisted CAs will be automatically rejected.
verifier.supportedClientIdSchemesverifier_attestation | redirect_uri | did | x509_san_dnsverifier_attestation | redirect_uri | didList of all Client ID Schemes that can be used for verification. If no scheme is specified via the API, the first compatible scheme from the list is used.
holder.supportedClientIdSchemesverifier_attestation | redirect_uri | did | x509_san_dnsverifier_attestation | redirect_uri | didList of all Client ID Schemes that can be used by the wallet during verification.

revocation

The system supports the following revocation methods:

typeDescription
LVVCLinked Validity Verifiable Credentials
BITSTRINGSTATUSLISTBitstring Status List
TOKENSTATUSLISTToken Status List
MDOC_MSO_UPDATE_SUSPENSIONSuspension for mdoc credentials
NONENo revocation method; issued credentials cannot be revoked and remain valid indefinitely

revocation params

NameTypeDefaultDescription
formatJWTnullFor BITSTRINGSTATUSLIST, encode the list as a JWT.
private.credentialExpirynumbernullFor LVVC, the time, in seconds, after which an issued LVVC expires.
private.minimumRefreshTimenumbernullFor LVVC, the time, in seconds, after which a wallet can request a new LVVC.

identifier

Use this object to enable or disable the use of different types of identifiers. Create an instance of each kind and use the enabled flag.

TypeDescription
DIDDID methods
CERTIFICATEX.509 certificates
KEYKey algorithms

For example:

identifier:
DID:
display: 'identifier.did'
enabled: true
order: 0
CERTIFICATE:
display: 'identifier.certificate'
enabled: true
order: 1
KEY:
display: 'identifier.key'
enabled: true
order: 2

did

The system supports the following DID methods:

TypeDescription
WEBdid:web
KEYdid:key
JWKdid:jwk
WEBVHdid:webvh (formerly did:tdw)

did params

NameTypeDefaultDescription
keys.minnumberundefinedSets the minimum number of keys that must be specified for a DID.
keys.maxnumberundefinedSets the maximum number of keys allowed for a DID.
keys.authenticationnumberundefinedUse .min and .max to set allowable range of keys for the authentication verification method.
keys.assertionMethodnumberundefinedUse .min and .max to set allowable range of keys for the assertion method verification method.
keys.keyAgreementnumberundefinedUse .min and .max to set allowable range of keys for the key agreement verification method.
keys.capabilityInvocationnumberundefinedUse .min and .max to set allowable range of keys for the capability invocation verification method.
keys.capabilityDelegationnumberundefinedUse .min and .max to set allowable range of keys for the capability delegation verification method.
private.maxDidLogEntryChecknumberundefinedFor did:webvh, sets how many log entries the system will check during verification, starting from the most recent.
private.externalHostingUrlstringundefinedFor did:webvh, sets a custom external host for DID documents. Document uploading must still be integrated.

keyAlgorithm

The system supports the following key algorithms:

TypeDescription
BBS_PLUSBBS+ Signature Scheme
EDDSAEdDSA
ES256ECDSA
DILITHIUMCRYSTALS-DILITHIUM

When creating your configuration, you must use these values as the instance name. There is no type for key algorithms.

keyAlgorithm params

NameTypeDefaultDescription
algorithmEd25519undefinedFor EDDSA, specify the Ed25519 implementation.
algorithmES256undefinedFor ES256, specify the P-256 curve with SHA-256 as the hashing algorithm.
algorithmCRYDI3undefinedFor DILITHIUM, specify the CRYDI3 algorithm.

keyStorage

The system supports the following key storage types:

TypeDescription
INTERNALEncrypted internal database.
AZURE_VAULTAzure Key Vault.
SECURE_ELEMENTHardware storage for equipped mobile devices.
REMOTE_SECURE_ELEMENTHardware security module (HSM) for mobile devices; uses Ubiqu.

keyStorage params

NameTypeDefaultDescription
private.encryptionstringundefinedFor INTERNAL storage, specify the encryption key of the database.
private.vaultUrlurlundefinedFor AZURE_VAULT storage, specify the URL of the vault.
private.clientIdstringundefinedFor AZURE_VAULT storage, specify the client ID.

datatype

The system supports the following data types:

TypeDescription
STRINGText values of any length. Examples: "Hello", "123abc"
NUMBERNumeric values provided as strings. Examples: "123", "-456", "123.456"
DATEISO 8601 formatted dates and/or RFC 3339 formatted datetimes, depending on the mandatory format param.
Supports min and max parameters in YYYY-MM-DD format for date range validation. Example: min: 2024-01-01
FILEBase64-encoded files using Data URL format:
data:[MIME type];base64,[encoded data]
Example: data:image/png;base64,iVBORw0KGgoAAAA...
File types can be restricted using the accept parameter. If not specified, all file types are allowed.
BOOLEANCase-sensitive boolean values. Only true or false are accepted.
OBJECTContainer type for nested data structures. Can hold any other supported datatype, including other objects. Used for creating hierarchical claim structures. See the claims object - nested claims guide.
ARRAYModifier that allows multiple values for a single key. Can be applied to any other datatype. See the claims object - arrays guide.

datatype params

NameTypeDefaultDescription
min/maxnumber | date | NOWundefinedFor NUMBER: Sets the minimum/maximum allowed numeric value
For DATE: Sets the earliest/latest allowed date. Use "NOW" to represent the current date or date-time.
patternstringundefinedRegular expression pattern for STRING validation.
Example: '^[A-Z]{2}[0-9]{6}$' for a passport number
acceptstringundefinedArray of allowed MIME types for FILE.
Example:
- image/jpeg
- image/png
fileSizenumberundefinedMaximum allowed file size in bytes for FILE type.
encodeAsMdlPortraitbooleanfalseWhen true, encodes uploaded images according to ISO 18013-5 Mobile Driving License portrait specifications.
formatdate | datetimeundefinedFor DATE: choose whether to use and accept date (example: 2024-01-22) or datetime (example: "2024-01-22T15:57:53.123456Z") or both.
preferredFormat*date | datetimeundefinedSet which format should be used in the frontend. If a value is passed here, it must be in format.
error*stringundefinedCustom error message displayed when validation fails.
Example: "Please enter a valid passport number"
autocomplete*booleanfalseEnables browser autocomplete suggestions for form fields.
placeholder*stringundefinedPlaceholder text shown in empty form fields.
Example: "Enter your passport number"
showAs*stringundefinedUI display mode for FILE type. Supported values: IMAGE, PDF, DOCUMENT

* UI-only parameters passed to the frontend without backend validation.

task

The system supports the following tasks:

TypeDescription
HOLDER_CHECK_CREDENTIAL_STATUSRuns a check on the status of held credentials, and updates accordingly. Pass organisationId: UUID in the params to specify the organization to check.
RETAIN_PROOF_CHECKRuns a check on claims data against its expireDuration. If the claims data has expired, the system deletes it.
SUSPEND_CHECKRuns a check on suspensions with a defined duration. If the duration has passed, the credential is reactivated.

task params

No parameters supported.

trustManagement

The system supports the following trust management models:

TypeDescription
SIMPLE_TRUST_LISTProcivis Trust Registry

trustManagement params

NameTypeDefaultDescription
enablePublishingbooleanfalseIf true the Core instance is a publisher of trust anchors. If false it only consumes or updates a trust anchor managed by the Core instance that publishes.

transport

The system supports the following transport protocols:

TypeDescription
HTTPHypertext Transfer Protocol is the request-response protocol for the World Wide Web.
BLEBluetooth Low Energy can be used by mobile wallets and mobile verifiers to send, request and receive proofs.
MQTTMQTT is a publish-subscribe network protocol for device communication, and can be used by mobile wallets and mobile verifiers to send, request and receive proofs.

transport params

NameTypeDefaultDescription
private.brokerUrlurlundefinedFor MQTT, specify the broker server for publishing and subscribing.

transport order

For systems with multiple transport protocols enabled, use the order to set fallback preferences for which transport protocol to use.

The transport protocol to use in any given interaction can be specified at the beginning of the interaction. When this is not fully specified, the order of protocols in the configuration becomes a fallback value for determining which to use.

See the relevant transport object guide for how the system determines which protocol to use:

cacheEntities

The following entities are managed through the cache:

TypeDescription
STATUS_LIST_CREDENTIALStatus of credentials with a status list type of revocation.
DID_DOCUMENTDID documents for DIDs resolved with a web call.
JSON_LD_CONTEXT@contexts for JSON-LD credentials.
VCT_METADATAType metadata for SD-JWT VCs.
JSON_SCHEMASchemas for data validation of SD-JWT VCs.
TRUST_LISTTrust lists for trust management.

See the caching guide for cache configuration options.

cacheEntities params

No parameters supported.

openidProvider

This object configures OpenID Connect providers for OpenID Bridge-enabled instances of the Desk API.

NameTypeDefaultDescription
enabledbooleantrueIf false, Bridge is disabled and OpenID providers cannot be added or managed. If true, Bridge is enabled and OpenID providers can be added and managed.
credentialLoginDisabledbooleanfalseIf true, login to Desk with a credential is disabled. If false, users can log in to Desk with a credential.

openidProvider params

No parameters supported.

app

The system supports the following server settings:

NameTypeDefaultDescription
databaseUrlstringundefinedURL for server database.
coreBaseUrlstringundefinedBase URL of the Core instance.
authTokenstringundefinedAuthorization token for the Core API. This should be updated for security.
serverIpstringundefinedServer address of the Core instance.
serverPortstringundefinedPort number of the Core instance.
traceJsonbooleanundefinedWhether to enable JSON tracing information for debugging API calls.
enableExternalEndpointsbooleantrueWhen enabled, allows the usage of all /ssi endpoints. In a segregated network zone environment, set this to true for the public zone deployment.
enableManagementEndpointsbooleanfalseWhen enabled, allows the usage of all /api endpoints. In a segregated network zone environment, set this to true for the internal zone deployment and false for the public zone deployment.
traceLevelstringundefinedControls the logging verbosity for different components using a comma-separated list of namespace=level pairs.
sentryDsnstringundefinedDSN for Sentry error tracking integration.
sentryEnvironmentstringundefinedSpecifies the environment name to attach to error reports sent to Sentry.
hideErrorResponseCausebooleanfalseWhen enabled, strips internal error details from API error responses sent to clients. This should typically be enabled in production to avoid exposing sensitive implementation details in error messages, while disabled in development for easier debugging.
allowInsecureHttpTransportbooleanfalseWhen enabled, allows HTTP communication without TLS/SSL encryption. This should only be enabled in development environments or controlled internal networks.
insecureVcApiEndpointsEnabledbooleanfalseWhen enabled, allows /vc-api endpoints benchmarking with canivc.com.