Reference
Quick lookups for paths, APIs, services, and validation rules. Pages under Architecture / Operations / Configuration link back here rather than duplicating these tables.
Paths (master and runner)
-
Master envs:
/var/jenkins_home/qa-data/envs/<env>/ -
Master shared library:
/var/jenkins_home/qa-data/shared-lib/ -
Master services:
/var/jenkins_home/qa-data/shared-lib/resources/services/ -
Master schemas:
/var/jenkins_home/qa-data/shared-lib/resources/schemas/ -
Runner envs:
/opt/qa-envs/<env>/(default ofQAConfig.Paths.AGENT_ENVS_DIR)
QAConfig constants
| Field | Default | Env override |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(derived) |
|
|
(derived) |
|
|
|
|
|
|
|
|
(derived) |
|
|
(derived; legacy) |
|
String constants used for |
|
Allowed values for |
| Field | Default | Env override |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
(compile-time) |
| Field | Default | Env override |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Field | Default | Env override |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Field | Default | Env override |
|---|---|---|
|
|
|
|
|
|
|
|
|
| Field | Default | Env override |
|---|---|---|
|
|
|
|
|
|
|
|
(compile-time) |
|
|
(compile-time) |
Pipeline steps (vars/)
| File | Role |
|---|---|
|
Create-Environment wizard — constellation name, services, DB, image tags, GLOBAL_VARIABLES, TTL; renders the env to |
|
Update-Environment — change services, versions, vars, or target runner on an existing env. Strips |
|
Manage-Environment dispatcher — actions |
|
Deploy-Environment — stash on master, unstash on runner, port-conflict check via |
|
Thin wrapper over |
|
Shared-library step that brings a |
|
Rollback using backup snapshots created by |
|
Swap the DB backend ( |
|
List-Environments — inventory with status, TTL, runner, services; RBAC-aware filtering. |
|
TTL-based sweep. Non-admin actors only see and act on their own envs; cron runs bypass the RBAC check. |
|
Thin wrapper over |
|
Builds the per-env compose file from the |
|
Build-time factory for the Active Choices parameter scripts (see qaUiScripts — Build-time Active Choices Factory). |
|
Shared helpers: logging DSL, validation, env-file helpers, RBAC, port scanning, YAML/JSON plumbing (see |
|
Rsync workspace → |
|
Propagate node config to agents. |
|
Migrate existing envs to a new schema / compose layout. |
|
Template-management helper shared by the legacy schema steps. |
|
Legacy schema flow predating the consolidated compose bundles. Kept for backwards compatibility. |
utils.* helpers
| Method | Signature | Purpose |
|---|---|---|
|
|
Print an actionable diagnostic block on step failure. |
|
|
Convert SnakeYAML |
|
|
Escape HTML entities for inlining into Active Choices HTML. |
|
|
Ensure |
|
|
Generic name validator (used for env names and backup names). |
|
|
Fail fast if the env name is reserved, malformed, or collides with an existing env. |
|
|
Ensure every port sits in |
|
|
Append an NDJSON record to |
|
|
Validate the proposed |
|
|
Write |
|
|
Fail-fast guard at step entry. No-op when |
|
|
Sum CPU / RAM / disk budgets from |
|
|
Resolve the |
|
|
Apply the JSON overlay submitted by the |
|
|
Replace values of sensitive keys (see |
|
|
Whether a variable name matches the sensitive pattern. |
|
|
Preserve comments and blank lines around |
|
|
Split DRP-joined |
|
|
Rewrite |
|
|
Extract the set of |
|
|
Roll-back support; snapshots live under |
|
|
Thin wrappers over |
|
|
Enumerate configurable service |
|
|
Rsync the workspace into |
|
|
Resolve |
|
|
Remove stale |
|
|
Build-time Active Choices script for the Deploy-Environment parameter form. |
|
|
Build-time Active Choices script that enumerates online agents for |
|
|
Parse |
|
|
Return envs that already claim any of the given host ports on |
|
see Logging DSL |
Logging DSL — documented separately. |
qaUiScripts.* factories
| Method | Mode-parameter | Purpose |
|---|---|---|
|
no |
The CSS+JS superset injected via the hidden |
|
no |
Wrap a panel body in the "pick an env name first" gate used by |
|
no |
Same gate for CascadeChoice parameters (radio / dropdown / checkbox sources). |
|
no |
SVG dependency-graph renderer driven by |
|
|
Per-service |
|
no |
CPU / RAM / disk estimate summed from |
|
|
Validation banner + summary. |
|
no |
Opt-in checkbox surfaced when |
|
|
Rich |
|
no |
Multi-checkbox picker of Jenkins logins for |
|
no |
Live HTML diff of proposed vs saved |
|
Build-time vs runtime
These methods run on the Jenkins master during |
Service catalogue
| Group | Service | Purpose | Gated by profiles: |
|---|---|---|---|
Database (MySQL bundle) |
|
Primary RDBMS for the FTACS stack; MySQL 8.0 image built from |
no |
Database (Oracle bundle) |
|
Oracle 19c backend swapped in place of MySQL for the Oracle bundle. |
no |
Database (optional) |
|
PostgreSQL replacement available in both bundles, gated by a Compose profile. |
yes |
Data infrastructure |
|
OLAP datastore for telemetry/metrics ingestion. |
no |
Data infrastructure |
|
ClickHouse ↔ RDBMS JDBC bridge; health endpoint is |
no |
Caching / clustering |
|
In-memory data grid used by FTACS and companion APIs. |
no |
Core application |
|
FTACS ACS server; the functional centre of every stack. |
no |
Identity |
|
Optional OIDC identity provider for the web portals (manual opt-in; not in any preset). Imports the |
yes |
API |
|
Aggregation backend for the main UI portals. |
yes |
API |
|
NBI REST surface for external integrations. |
yes |
API |
|
Internal service-to-service API. |
yes |
API |
|
Device provisioning REST API. |
yes |
Web UI |
|
Provisioning operator UI. |
yes |
Web UI |
|
Bundled customer/operator portals. |
yes |
Device plane |
|
Device-network orchestration service. |
yes |
Device plane |
|
QoE web application (Spring Boot, layered |
yes |
Device plane |
|
System-level metrics collector. |
yes |
AI |
|
UI-side AI assistant. |
yes |
Emulators |
|
TR-069 CPE emulator for pipeline tests. |
yes |
Emulators |
|
LwM2M / IoT device emulator (see architecture). |
yes |
Configuration |
|
Config-management backend. |
yes |
Configuration |
|
Config-management UI. |
yes |
Monitoring |
|
Metrics scraper. |
yes |
Monitoring |
|
Dashboards on top of Prometheus. |
yes |
Testing snippets
List agents (Jenkins Script Console):
def jenkins = jenkins.model.Jenkins.instance
jenkins.computers.each { c ->
def n = c.node
if (n != null) {
def name = n.name ?: 'master'
println "${name} - ${c.isOnline() ? 'online' : 'offline'} - ${n.labelString ?: '(no labels)'}"
}
}
Verify an env on a runner:
cd /opt/qa-envs/<env>
docker compose ps
docker compose logs --no-color --tail=200
Check the current env-name regex from a running Jenkins (Script Console):
println com.qa.config.QAConfig.Validation.ENV_NAME_PATTERN
println com.qa.config.QAConfig.Validation.isValidEnvName('0neiot-qa-01')
// prints ^[a-z0-9][a-z0-9-]{2,49}$
// true