Glossary

Short definitions for the terms that show up repeatedly in these docs.

ACS

Auto-Configuration Server. The core FTACS service (ftacs in the compose bundles).

Active Choices

Jenkins plugin (uno-choice) powering reactive parameters. All UI panels in this library go through it.

Agent / Runner

A Jenkins worker. In this codebase "runner" is the same thing as an "agent" except master and built-in.

Audit log

NDJSON file at ${MASTER_ENVS_DIR}/.audit-log.ndjson. Append-only; one line per privileged mutating action.

Bundle

The consolidated resources/services/compose-{mysql,oracle}.yml file — every service block for a given DB flavour in a single place.

call()

Entry point of a Jenkins shared-library step. vars/foo.groovy must export def call(Map config = [:]).

CascadeChoice

CascadeChoiceParameter — Active Choices plugin class that serves as a cascade source. Contrast with DRP.

CPS

Continuation-Passing Style. The Jenkins Pipeline interpreter that requires every local variable on the stack to be serialisable. See CPS Limitations.

DRP

DynamicReferenceParameter — Active Choices plugin class for display-only panels. Cannot drive a cascade.

FTACS

The product name ("Friendly Tech ACS"). Also the name of the primary compose service.

Gate / gated UI

Pattern where an Active Choices panel shows a "pick something first" banner until its prerequisites are bound. Implemented by qaUiScripts.envGateHtml.

Harbor

Private Docker registry at hub.friendly-tech.com. Jenkins credential id: harbor-cred.

LazyMap

groovy.json.internal.LazyMap. SnakeYAML’s default map implementation. Not serialisable by Jenkins CPS — must be converted via utils.toBasic before crossing a stash / node(…​) boundary.

manage-owners

The Manage-Environment action that rewrites meta.owners[]. The only action that bypasses the duplicate-audit code path and does not change lifecycle state.

Manifest

The rendered meta.json for an env. Always written via utils.atomicWriteMeta.

Master

Jenkins master / controller node. Hosts the shared-library loader, MASTER_ENVS_DIR, and every Active Choices script evaluation.

Meta / meta.json

Per-env manifest under ${MASTER_ENVS_DIR}/<env>/meta.json. Carries state, ownership, TTL, image tags, and audit pointers.

@NonCPS

Groovy annotation that bypasses the CPS interpreter for a method. Used in utils.groovy for file I/O, YAML parsing, regex, and heavy closures.

Overlay

JSON blob submitted by the SERVICE_VARIABLES Active Choices parameter, applied by utils.applyServiceVarsOverlay onto per-service .env files.

Partial

An Antora include::partial$<file>.adoc[] block. Lives under docs/modules/ROOT/partials/.

Profile (Compose)

services.<name>.profiles: — Compose V2 feature that keeps the service out of compose up unless the profile is active. The library strips profiles: from services it plans to start.

RBAC

Role-based access control enforced via QAConfig.RBAC.canModify and utils.checkOwnership. Roles: creator, co-owner, admin, anyone else. See RBAC & Ownership.

Runner

See Agent.

Sandbox (Active Choices)

Separate Groovy evaluation context where Active Choices parameter scripts run. Does not have access to the shared library.

setupParameters()

Private helper inside each *Step.groovy that writes the properties([parameters([…​])]) block on first run.

Shared library

vars/ + src/ + resources/ loaded by Jenkins as a Global Pipeline Library, rsynced into /var/jenkins_home/qa-data/shared-lib/ by utils.syncSharedLibrary.

Snapshot

Backup of an env’s config dir produced by utils.createSnapshot. Stored under ${MASTER_ENVS_DIR}/.snapshots/.

Stash / Unstash

Jenkins pipeline steps for moving workspace content between nodes. The library uses them as the master↔runner transport.

_UI_STATE

Hidden Active Choices parameter injected by qaUiScripts.sharedCssJs(). Carries an aggregate JSON snapshot of the form so derived panels can render without deep referencedParameters chains.

TTL

Time-to-live. One of QAConfig.TTL.ALL. Enforced by cleanupEnvsStep.