Use this file as the quick reference for irods-go-drs configuration.
The service reads configuration in this order:
drs-config.yamlDRS_*environment variable overrides- Secret files for sensitive values
To use one exact config file, set:
DRS_CONFIG_FILE=/path/to/drs-config.yamlThese are the settings you will usually care about:
DRS_LISTEN_PORT=8080
DRS_DRS_LOG_LEVEL=info
DRS_IRODS_HOST=irods-provider
DRS_IRODS_PORT=1247
DRS_IRODS_ZONE=tempZone
DRS_IRODS_ADMIN_USER=rods
DRS_IRODS_PRIMARY_TEST_USER=test1
DRS_IRODS_PRIMARY_TEST_PASSWORD=test1
DRS_IRODS_SECONDARY_TEST_USER=test2
DRS_IRODS_SECONDARY_TEST_PASSWORD=test2
DRS_RESOURCE_AFFINITY=demoResc,edgeResc
DRS_OIDC_URL=https://localhost:8443
DRS_OIDC_REALM=drs
DRS_OIDC_CLIENT_ID=irods-go-drs
DRS_OIDC_INSECURE_SKIP_VERIFY=falseIf your local Keycloak uses a self-signed certificate, you can temporarily use:
DRS_OIDC_INSECURE_SKIP_VERIFY=trueUse that only for local development.
In YAML config files, use:
OidcInsecureSkipVerify: trueOidcSkipTLSVerify is still accepted for compatibility, but
OidcInsecureSkipVerify is the preferred config key.
ResourceAffinity is optional and maps iRODS storage resources to HTTPS DRS
hosts that are proximate to those resources.
Supported forms:
ResourceAffinity:
- Host: https://drs-resc-a.example.org
Resources:
- demoResc
- cacheResc
- Host: https://drs-default.example.org
Resources: []or environment override:
DRS_RESOURCE_AFFINITY=demoResc,edgeRescNotes:
resourcesentries with exact names are preferred for matching replicas.- The first entry with an empty
Resourcesarray is the default for unmatched resources. *is still accepted for backward compatibility.- Environment override remains a legacy compatibility path and maps to one
default affinity entry using
HttpsAccessMethodBaseURLas the host base URL.
Prefer secret files over inline secrets.
Supported file-backed secret settings:
IrodsAdminPasswordFile: /run/secrets/irods_admin_password
OidcClientSecretFile: /run/secrets/oidc_client_secretEnvironment variable equivalents:
DRS_IRODS_ADMIN_PASSWORD_FILE=/run/secrets/irods_admin_password
DRS_OIDC_CLIENT_SECRET_FILE=/run/secrets/oidc_client_secretSecret precedence is:
- explicit value
- secret file
- empty
For integration and E2E work, keep the test users in the same config file:
IrodsAdminUser: rods
IrodsAdminPasswordFile: /run/secrets/irods_admin_password
IrodsPrimaryTestUser: test1
IrodsPrimaryTestPassword: test1
IrodsSecondaryTestUser: test2
IrodsSecondaryTestPassword: test2The test helpers use proxy authentication through IrodsAdminUser and
IrodsAdminPassword, and they default the effective test user to
IrodsPrimaryTestUser.
If you add Basic-authenticated E2E tests, use IrodsPrimaryTestPassword and
IrodsSecondaryTestPassword as the source of truth for those user credentials.
Do not use the old YAML keys:
IrodsDrsAdminUser:
IrodsDrsAdminPassword:
IrodsDrsAdminPasswordFile:Use:
IrodsAdminUser:
IrodsAdminPassword:
IrodsAdminPasswordFile:Configured access methods are now driven by structured booleans and provider
settings in drs-config.yaml.
Example:
IrodsAccessMethodSupported: false
FileAccessMethodSupported: false
HttpsAccessMethodSupported: true
HttpsAccessImplementation: irods-go-rest
HttpsAccessMethodBaseURL: https://drs.example.org/api/v1/path/contents?irods_path=
HttpsAccessUseTicket: true
LocalAccessRootPath: /mnt/irodsCurrent behavior:
httpsreturns anaccess_idfor later resolution through/accessirodsreturns anaccess_idlocalreturns alocal:///...paths3is a placeholder
Current https implementations:
irods-go-restis supportedirods-https-apiis supported
You can keep service-info metadata in a separate JSON file:
ServiceInfoFilePath: service-info.json
ServiceInfoSampleIntervalMinutes: 5Environment variable equivalent:
DRS_SERVICE_INFO_FILE_PATH=/path/to/service-info.jsonIf the path is relative, it is resolved relative to drs-config.yaml.
The local Docker test stack is under:
deployments/docker-test-framework/5-0
This is for development and testing, not production.
If you keep a private keycloak.env outside the repo, point Compose at it with:
KEYCLOAK_ENV_FILE=/path/to/keycloak.env