{"ref":"capability:configuration","page":"/capabilities/configuration","json":"/capabilities/configuration.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"configuration","name":"Configuration","domain":"operations-and-runtime","ecosystems":["cap","abap"],"universal":true,"description":"Per-environment settings without per-environment code — profiles, layered configuration, and bindings resolved from the platform at start-up.","short":"Per-environment settings without per-environment code","core_coverage":{"state":"core-only","assessed_at":"2026-09-27","what_core_does":"Node.js merges twelve sources into cds.env in a fixed order, from built-in defaults over project files and profile-specific .env files to process.env and VCAP_SERVICES, and copies service bindings from Cloud Foundry, Kyma or cds bind into cds.requires.<srv>.credentials. Java uses Spring Boot's externalized configuration and profiles, with a production profile that switches a set of property defaults at once.","where_it_stops":"On Node.js it stops at process start: cds.env loads its sources on first use, credentials are filled from the process environment when the process starts, and a value assigned in code changes the running program only. A value that has to change while the service runs is another concern, [feature toggles](capability:feature-toggles) for behaviour per tenant or user and [secrets rotation](capability:secrets-rotation) for credentials.","sources":[{"url":"https://cap.cloud.sap/docs/node.js/cds-env","title":"Project-Specific Configurations — cds.env","checked":"2026-09-20","quote":"cds.env is actually a getter property, which on first usage loads settings from the following sources"},{"url":"https://cap.cloud.sap/docs/node.js/cds-connect","title":"Connecting to Required Services — service bindings","checked":"2026-09-20","quote":".credentials are always filled (and overridden) from process environment on process start."},{"url":"https://cap.cloud.sap/docs/tools/cds-bind","title":"Hybrid Testing — cds bind","checked":"2026-09-20"},{"url":"https://cap.cloud.sap/docs/java/developing-applications/configuring","title":"Configuring Applications — CAP Java","checked":"2026-09-20","quote":"The production profile configures a set of selected property defaults, recommended for production deployments, at once."},{"url":"https://cap.cloud.sap/docs/java/developing-applications/properties","title":"CDS Properties (CAP Java) — capire","checked":"2026-09-27","quote":"The following table lists all configuration properties that can be used to configure CAP Java 5.1.1."}]},"history":[{"date":"2026-08-31","field":"core_coverage.state","from":"core","to":"core-only","reason":"States renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately."},{"date":"2026-09-13","field":"name","from":"Configuration and profiles","to":"Configuration","reason":"The map draws every capability as one tile, and a name that spells out its second half ran to three lines at a size nobody could read. The id already carried the short name; the name now matches it. The concern is unchanged: the description and the coverage say what it spans."},{"date":"2026-09-14","field":"ecosystems","from":"cap","to":"cap, abap","reason":"Widened to ABAP: greltel/abap-dynamic-assignment, raketenstart-abap/abap-tvarvc, jrgkraus/abap-gencust, abapinho/abaK and bizhuka/aqo keep parameters and constants out of ABAP code, as wrappers around TVARVC or replacements for it."},{"date":"2026-09-27","field":"core_coverage","from":"without the page","to":"cites the page","reason":"capire audit 2026-09-27, judgement pages read once more: a page this capability owns was cited nowhere."},{"date":"2026-10-26","field":"coverage_by_ecosystem.abap.community_adds","from":"(absent)","to":"Added: kinds of ABAP configuration libraries, including page settings kept in tables","reason":"Reassessed against the graph (check:capabilities): config-management arrived as a provider after the block was last looked at; the state stays core-and-community."}],"coverage_by_ecosystem":{"abap":{"state":"core-and-community","assessed_at":"2026-09-14","what_core_does":"Table TVARVC holds variables for report variants, maintained per client with transaction STVARV; changing a value there changes every variant that uses it.","where_it_stops":"At variants. SAP documents TVARVC as a source of values for selection screens in background processing; reading typed values, structures and tables from program code is not part of it, and that is where the ABAP libraries sit.","community_adds":"Libraries that keep parameters and constants out of ABAP code, as wrappers around TVARVC or replacements for it, such as [abaK](artifact:abapinho-abak) and [aqo](artifact:bizhuka-aqo), and [config-management](artifact:abap2ui5-addons-config-management) from [abap2UI5 addons](actor:abap2ui5-addons), which keeps the theme, CSS and Content-Security-Policy settings of an abap2UI5 page in database tables.","sources":[{"url":"https://help.sap.com/doc/saphelp_nw73ehp1/7.31.19/en-us/c0/9803a7e58611d194cc00a0c94260a5/content.htm?no_cache=true","title":"SAP Help — Fixed Values from Table TVARVC","checked":"2026-09-14","quote":"Every change of a value in table TVARVC affects all variants using this particular variable."}],"relationship":"unassessed"}},"framing_by_ecosystem":{"abap":{"description":"On an ABAP system configuration is mostly values a program reads at runtime instead of hard-coding them: parameters, selection ranges and mappings kept in TVARVC or a custom table, some of them maintained directly in production without a transport."}},"drafted_with_ai":true},"sap_delivery":{"door":"cap","all":{"built_in":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"},{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json"}],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:cap-java-cds-feature-cloudfoundry","name":"com.sap.cds:cds-feature-cloudfoundry","json":"/artifacts/cap-java-cds-feature-cloudfoundry.json"},{"ref":"artifact:cap-java-cds-feature-k8s","name":"com.sap.cds:cds-feature-k8s","json":"/artifacts/cap-java-cds-feature-k8s.json"}]},"by_flavor":{"node":{"built_in":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"}],"documented_pattern":[],"announced":[],"packages":[]},"java":{"built_in":[{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json"}],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:cap-java-cds-feature-cloudfoundry","name":"com.sap.cds:cds-feature-cloudfoundry","json":"/artifacts/cap-java-cds-feature-cloudfoundry.json"},{"ref":"artifact:cap-java-cds-feature-k8s","name":"com.sap.cds:cds-feature-k8s","json":"/artifacts/cap-java-cds-feature-k8s.json"}]}}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:abapinho-abak","name":"abaK","json":"/artifacts/abapinho-abak.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:greltel-abap-dynamic-assignment","name":"abap-dynamic-assignment","json":"/artifacts/greltel-abap-dynamic-assignment.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:jrgkraus-abap-gencust","name":"abap-gencust","json":"/artifacts/jrgkraus-abap-gencust.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:raketenstart-abap-abap-tvarvc","name":"abap-tvarvc","json":"/artifacts/raketenstart-abap-abap-tvarvc.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:bizhuka-aqo","name":"aqo","json":"/artifacts/bizhuka-aqo.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:cap-java-cds-feature-cloudfoundry","name":"com.sap.cds:cds-feature-cloudfoundry","json":"/artifacts/cap-java-cds-feature-cloudfoundry.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:cap-java-cds-feature-k8s","name":"com.sap.cds:cds-feature-k8s","json":"/artifacts/cap-java-cds-feature-k8s.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:abap2ui5-addons-config-management","name":"config-management","json":"/artifacts/abap2ui5-addons-config-management.json","ecosystem":"abap","origin_ring":"community-org"}],"samples":[],"explained_by":[{"ref":"content:tips-for-running-cap-nodejs-in-sap-btp","name":"Tips for running CAP nodejs in SAP BTP","json":"/content/tips-for-running-cap-nodejs-in-sap-btp.json"}],"normative_context":[]}}