Forge Platform — User Handbook
A step-by-step guide for everyday use of the Forge Platform UI. Each section follows the left sidebar of the application. Click any item in the table of contents to jump straight to it.
Table of Contents
Views
Automation
Self-Service
Tenancy
Compliance
- Drift Detections
- Drift Alerts
- Alert Rules
- Fact Snapshots
- Policies
- Policy Decisions
- Scanners
- Scan Results
- Observability
Resources
Access
Admin
VIEWS
Dashboard

What each marker means:
- Page heading — confirms you are on the Dashboard.
- Getting Started banner — links to the wizard that walks you through the first install (org, project, inventory, credential, template).
The Dashboard is the landing page after login. It shows the overall health of the platform: recent jobs, success/failure rates, active hosts, and quick links.
Step by step
- Log in to Forge.
- You will land on the Dashboard automatically. If not, click Dashboard in the left sidebar.
- Read the four top tiles: Total Hosts, Total Jobs, Active Schedules, Recent Failures.
- Use the time-range selector (top-right) to switch between Last 24h, Last 7d, Last 30d.
- Click any tile to drill into the matching list view.
Example
Open Dashboard → set range to Last 7d → click the Recent Failures tile to see all failed jobs of the past week.
Jobs

What each marker means:
- Search box — filter the jobs list by name or id, e.g. type
Deployto find every run of the Deploy Webapp template. - Refresh — re-fetch the list (auto-refresh runs on a timer too).
Jobs are individual runs of a Job Template. Use this view to launch, monitor, and inspect playbook executions.
Step by step — launch a job
- Click Jobs in the sidebar.
- Click the Launch button (top-right).
- Pick a Job Template from the dropdown.
- Fill in any required survey variables.
- Click Launch.
- The job opens in the live output view — watch the play-by-play log.
Example survey input
target_env: staging
package_version: 1.4.2
restart_service: true
Step by step — inspect a finished job
- Click any row in the Jobs list.
- Read the Details tab (status, duration, executed by).
- Open the Output tab for the full Ansible log.
- Open Hosts to see per-host success/failure.
Schedules

What each marker means:
- Create Schedule — opens the form below.
Schedules trigger Job Templates automatically on a cron-like cadence.
Create Schedule

What each marker means:
- Name — short, descriptive id, e.g.
nightly-db-backup. - Template — the Job Template to launch on the schedule, e.g.
Backup PostgreSQL. - Frequency — None / Minute / Hour / Day / Week / Month — pick the cadence.
- Start Date/Time — when the first run should fire, e.g.
2026-04-12 02:00. - Create Schedule — submits the form.
Step by step
- Click Schedules → Add.
- Fill in:
- Name — short, descriptive
- Job Template — what to run
- Start Date / Time
- Frequency — None / Minute / Hour / Day / Week / Month
- Repeat Frequency — every N of the chosen unit
- Click Save.
- Toggle the Enabled switch to activate.
Example
| Field | Value |
|---|---|
| Name | nightly-db-backup |
| Job Template | Backup PostgreSQL |
| Start Date | 2026-04-12 02:00 |
| Frequency | Day |
| Repeat | every 1 day |
Activity

What each marker means:
- Page heading — Activity is read-only; use the column headers and filters to narrow the feed.
A chronological feed of platform actions: who did what and when.
Step by step
- Click Activity.
- Filter by User, Object Type, or Date Range.
- Click any row to open the actor and the affected object side by side.
Example
Filter: User =
alice, Date Range = Today → see every change Alice made today.
Audit Log

What each marker means:
- Page heading — use the column header filters to narrow by event type, severity, actor, or date range.
Tamper-evident security log used for compliance reporting (SOC 2, ISO 27001).
Step by step
- Click Audit Log.
- Use filters: Event Type (
login,permission_change,credential_access, …), Severity, Actor. - Click Export → CSV to download for audit.
Example
Filter: Event Type =
credential_access, Date Range = Last 30d → export CSV → attach to audit ticket.
Analytics

What each marker means:
- Page heading — switch tabs across the top to see Overview / Job Trends / Host Health / Top Failures.
Visual KPIs across the whole platform: job throughput, MTTR, top failing templates.
Step by step
- Click Analytics.
- Pick a tab: Overview, Job Trends, Host Health, Top Failures.
- Hover any chart point for the exact number.
- Click Download Report → PDF for a printable snapshot.
Example
Open Top Failures → identify the template with most failures → click it → land on its Jobs list filtered to failed runs.
AUTOMATION
Event Rules

What each marker means:
- Create Event Rule — opens the form below.
Event Rules listen for incoming events (webhooks, alerts, message bus) and launch a Job Template when conditions match.
Create Event Rule

What each marker means:
- Name — short id, e.g.
restart-on-prometheus-crit. - Source Type — webhook / kafka / alertmanager / etc.
- Webhook Path — URL suffix the source will hit, e.g.
/prom-crit. - Add Condition — add JSONPath / regex match rules.
- Add Action — what to launch when conditions match (Job Template, Workflow).
- Create Event Rule — submits the form.
Step by step
- Click Event Rules → Create Rule.
- Fill in:
- Name
- Source (webhook, kafka, prometheus alertmanager, …)
- Match condition (JSONPath / regex)
- Action — Job Template to launch
- Variables to forward
- Click Save → toggle Enabled.
Example
name: restart-on-prometheus-crit
source: alertmanager
match: "$.alerts[?(@.labels.severity=='critical')]"
action_template: Restart Failed Service
forward_vars:
host: "{{ alert.labels.instance }}"
service: "{{ alert.labels.service }}"
Event Logs

What each marker means:
- Page heading — read-only feed of received events; click a row to see the raw payload.
Read-only history of every event the platform received and what rule (if any) consumed it.
Step by step
- Click Event Logs.
- Filter by Source, Status (
matched,unmatched,error), Date. - Click a row to see the raw event payload and which rule fired.
Example
Filter: Status =
unmatched→ find events nothing reacted to → write a new Event Rule for them.
Outbound Webhooks

What each marker means:
- Create Outbound Webhook — opens the form below.
Send platform events to external systems (Slack, PagerDuty, ServiceNow).
Create Outbound Webhook

What each marker means:
- Name — short id, e.g.
slack-failed-jobs. - Target URL — full https URL of the receiving endpoint, e.g.
https://hooks.slack.com/services/T0/B0/XYZ. - Trigger toggles (Job Started / Succeeded / Failed / etc.) — pick which events fire the webhook.
- Create Outbound Webhook — submits the form.
Step by step
- Click Outbound Webhooks → Add.
- Fill in:
- Name
- Target URL
- HTTP Method (POST / PUT)
- Headers (auth tokens)
- Trigger Events (job-failed, job-success, drift-detected, …)
- Payload Template (Jinja2)
- Click Test → Save.
Example
name: slack-failed-jobs
url: https://hooks.slack.com/services/T0/B0/XYZ
method: POST
headers:
Content-Type: application/json
trigger: job_failed
payload: |
{"text": ":x: Job *{{ job.name }}* failed on {{ job.host }}"}
SELF-SERVICE
Service Portal

What each marker means:
- Page heading — end-user catalog. Browse tiles or use search.
End-user catalog: lets non-admins request pre-approved automations without touching templates directly.
Step by step (as end user)
- Click Service Portal.
- Browse the catalog tiles or use the search bar.
- Click a tile (e.g., New Dev VM).
- Fill in the request form.
- Click Submit.
Example form
| Field | Value |
|---|---|
| VM name | dev-alice-01 |
| OS | Ubuntu 24.04 |
| Size | small (2 vCPU / 4 GB) |
| Owner email | alice@example.com |
My Requests

What each marker means:
- Page heading — your submitted requests with their current status.
Tracks the status of requests you submitted from the Service Portal.
Step by step
- Click My Requests.
- Read the status column:
pending,approved,rejected,running,completed,failed. - Click any row → Output tab to read the job log.
Example
Submit a New Dev VM request → open My Requests → wait for
approved→ wait forcompleted→ copy the VM IP from output.
Approvals

What each marker means:
- Page heading — pending requests waiting for an approver. Click a row to read details and Approve / Reject.
Queue of items waiting for an approver. Items appear here when a Service Portal entry is configured to require approval.
Step by step (as approver)
- Click Approvals.
- Click a pending item.
- Read the request details and the requester comment.
- Click Approve or Reject. If rejecting, provide a reason.
Example
Open the queue → click
Provision Production DB→ review parameters → click Approve → job auto-launches.
Catalog Admin

What each marker means:
- Add Item — opens the form below.
Where admins create and manage Service Portal entries.
Create Catalog Item

What each marker means:
- Name — what end users will see in the Service Portal, e.g.
New Dev VM. - Category — groups items in the portal, e.g.
Compute. - Underlying template — the Job Template that will run when a request is approved.
- Requires approval — toggle on to route requests through Approvals; off to auto-launch.
- Save — publishes the catalog item.
Step by step
- Click Catalog Admin → Add Item.
- Fill in:
- Title
- Description
- Category
- Underlying Job Template
- Survey form
- Approval required? (yes / no — pick approver group)
- Click Publish.
Example
| Field | Value |
|---|---|
| Title | New Dev VM |
| Category | Compute |
| Template | Provision VM |
| Approval required | No |
TENANCY
Tenants

What each marker means:
- Create Tenant — opens the form below.
A tenant is an isolated workspace (org-of-orgs) with its own data, quotas, and members. Used for multi-tenant deployments.
Create Tenant

What each marker means:
- Name — slug-friendly id, e.g.
acme-corp. - Admin username — bootstrap admin login for the tenant, e.g.
acme-admin. - Admin password — strong password for the bootstrap admin.
- Max concurrent jobs — quota cap for parallel jobs, e.g.
20. - Save — provisions the tenant atomically (org + admin + team + quotas).
Step by step
- Click Tenants → Create Tenant.
- Fill in:
- Name — slug-friendly
- Display Name
- Quota — max jobs/day, max hosts, max storage
- Owner user
- Click Create.
Example
name: acme-corp
display_name: ACME Corp
quota:
jobs_per_day: 500
hosts: 200
storage_gb: 50
owner: acme-admin@example.com
Quota Events

What each marker means:
- Page heading — read-only audit feed of quota changes and quota-exceeded events.
Audit feed of quota changes and quota-exceeded events per tenant.
Step by step
- Click Quota Events.
- Filter by Tenant and Event Type (
exceeded,raised,lowered). - Click a row to see the resource that hit the limit.
Example
Filter: Tenant =
acme-corp, Event =exceeded→ see when ACME hit their daily job ceiling → contact them or raise the quota.
COMPLIANCE
Drift Detections

What each marker means:
- Page heading — list of drift detection runs. Click any row for the per-host findings.
Compares the current state of a host against a known-good fact baseline.
Step by step
- Click Drift Detections → Run Detection.
- Pick:
- Inventory
- Baseline snapshot
- Hosts (or All)
- Click Run.
- Open the result row when finished.
Example
Inventory:
prod-web· Baseline:baseline-2026-04-01· Hosts: All → Run.
Drift Alerts

What each marker means:
- Page heading — open alerts opened by drift detections. Use status filter to narrow by
open/acked/resolved.
Alerts opened automatically when a drift detection finds a mismatch.
Step by step
- Click Drift Alerts.
- Filter by Severity (
info,warn,crit) or Status (open,acked,resolved). - Open an alert → click Acknowledge or Resolve.
Example
Filter: Severity =
crit, Status =open→ ack each one → assign to oncall.
Alert Rules

What each marker means:
- Create Alert Rule — opens the form below.
Rules that decide which drift findings become alerts and at which severity.
Create Alert Rule

What each marker means:
- Name — short id, e.g.
ssh-port-must-be-22. - Host Filter — fnmatch pattern (e.g.
prod-*) to scope the rule. - Minimum Severity — info / warn / crit — minimum severity that opens an alert.
- Create Alert Rule — submits the form.
Step by step
- Click Alert Rules → Add Rule.
- Fill in:
- Name
- Match (fact key + expected value or regex)
- Severity
- Notify (which Notification target)
- Save.
Example
name: ssh-port-must-be-22
match:
fact: ansible_facts.ssh.port
not_equal: 22
severity: crit
notify: slack-secops
Fact Snapshots

What each marker means:
- Page heading — list of point-in-time fact captures used as drift baselines.
A point-in-time capture of host facts. Used as drift baselines.
Step by step
- Click Fact Snapshots → Create Snapshot.
- Pick Inventory and Hosts.
- Add a Label (the snapshot’s name).
- Click Capture.
Example
| Field | Value |
|---|---|
| Inventory | prod-web |
| Hosts | All |
| Label | baseline-2026-04-01 |
Policies

What each marker means:
- Create Policy — opens the form below.
Policy-as-Code rules (OPA / Rego) that gate job execution and approvals.
Create Policy

What each marker means:
- Name — short id, e.g.
dba-only-drop-db. - Enforcement —
enforce(block on deny) orwarn(record only). - Rego module — the OPA Rego source that returns deny / allow.
- Save — validates and stores the policy.
Step by step
- Click Policies → Create Policy.
- Fill in:
- Name
- Scope (
pre-job,pre-approval,pre-deploy) - Rego source
- Click Validate → Save → Enable.
Example Rego
package forge.prejob
deny[msg] {
input.template.name == "Drop Database"
input.user.team != "dba"
msg := "only DBAs can drop databases"
}
Policy Decisions

What each marker means:
- Page heading — read-only history of every OPA evaluation. Filter by Verdict / User / Policy.
History of every policy evaluation: who triggered it, what the input was, and the verdict.
Step by step
- Click Policy Decisions.
- Filter by Policy, Verdict (
allow/deny), User. - Click a row to see the full input JSON and the rule that fired.
Example
Filter: Verdict =
deny, Last 24h → see who got blocked yesterday and why.
Scanners

What each marker means:
- Create Scanner — opens the form below.
Configured IaC / image / dependency scanners (Trivy, Checkov, …).
Create Scanner

What each marker means:
- Name — short id, e.g.
trivy-prod. - Tool — Trivy / Checkov / ansible-lint / pip-audit.
- Severity threshold — minimum severity that fails a job, e.g.
high. - Save — registers the scanner.
Step by step
- Click Scanners → Add Scanner.
- Fill in:
- Type (Trivy / Checkov / Custom)
- Target (Project, Inventory, or Image registry)
- Schedule (cron)
- Save → click Run Now to test.
Example
| Field | Value |
|---|---|
| Type | Trivy |
| Target | Project: infra-terraform |
| Schedule | 0 3 * * * |
Scan Results

What each marker means:
- Page heading — read-only findings from configured scanners. Filter by severity / scanner / date.
Findings from the configured scanners.
Step by step
- Click Scan Results.
- Filter by Severity (
crit,high,med,low), Scanner, Date. - Click a finding for the file path, line number, and remediation hint.
- Click Mark as Fixed after remediating.
Example
Filter: Severity =
crit, Scanner =trivy→ triage every critical CVE.
Observability

What each marker means:
- Page heading — live OpenTelemetry view (traces, metrics, logs). Pick a tab and search.
Live OpenTelemetry view of the platform itself: traces, metrics, logs.
Step by step
- Click Observability.
- Pick a tab: Traces, Metrics, Logs.
- Use the search bar (Trace ID / Service / Metric name).
- Click Open in Grafana for the deep view.
Example
Tab: Traces → search
service=forge-web→ click the slowest span → open in Grafana.
RESOURCES
Templates

What each marker means:
- Search box — filter templates by name, e.g. type
Deploy. - + Job Template — opens the create form below.
Job Templates wrap a project + playbook + inventory + credentials + survey into a launchable unit.
Create Job Template

What each marker means:
- Name — short, descriptive id, e.g.
Deploy Webapp. - Inventory — pick the target hosts, e.g.
Production Web. - Project — the Git project that contains the playbook, e.g.
Demo Project. - Playbook — the YAML file inside the project to run, e.g.
deploy.yml. - Limit — host pattern to scope the run, e.g.
webserversorwebservers:!web03. - Create Template — submits the form.
Step by step
- Click Templates → Add Job Template.
- Fill in:
- Name
- Job Type (
run/check) - Inventory
- Project
- Playbook
- Credentials
- Limit (host pattern, optional)
- Variables (YAML / JSON)
- Save → click Launch to test.
Example
name: deploy-webapp
job_type: run
inventory: prod-web
project: webapp-iac
playbook: deploy.yml
credentials:
- ssh-prod
limit: webservers
variables:
app_version: 2.3.1
Inventories

What each marker means:
- Search box — filter the inventories list.
- Create Inventory — opens the form below.
Logical group of hosts. May be static, sourced from a file, or synced from a cloud (AWS / Azure / GCP).
Create Inventory

What each marker means:
- Name — short id, e.g.
Production Web. - Description — free-text purpose, e.g.
Web tier — production hosts. - Organization — which org owns this inventory, e.g.
Default. - Inventory Type —
Standardfor a static list,Smartfor a dynamic host filter. - Create Inventory — submits the form.
Step by step — create static inventory
- Click Inventories → Add → Inventory.
- Fill in Name, Organization, Description.
- Click Save.
- Open the Hosts tab → Add to attach hosts.
- Open the Groups tab → Add to organize hosts.
Example
| Field | Value |
|---|---|
| Name | prod-web |
| Organization | Platform |
| Hosts | web01, web02, web03 |
| Group | webservers (contains all three) |
Hosts

What each marker means:
- Page heading — flat list of all hosts across all inventories. Click a host to see its facts and group memberships.
Individual machines (or endpoints) that belong to one or more inventories.
Step by step
- Click Hosts → Add.
- Fill in:
- Hostname / IP
- Inventory
- Variables (YAML — host-specific overrides)
- Save.
Example
name: web01.example.com
inventory: prod-web
variables:
ansible_user: deploy
http_port: 8080
Projects

What each marker means:
- Search box — filter projects by name.
- Create Project — opens the form below.
A Project is a Git checkout containing playbooks, roles, and collections.
Create Project

What each marker means:
- Name — short id, e.g.
webapp-iac. - SCM Type —
git(GitHub / GitLab / Bitbucket / self-hosted). - SCM URL — clone URL, e.g.
git@github.com:acme/webapp-iac.git. - SCM Branch — branch / tag / sha to check out, e.g.
main. - Create Project — submits the form and triggers the first sync.
Step by step
- Click Projects → Add.
- Fill in:
- Name
- Organization
- SCM Type (
git) - SCM URL
- SCM Branch
- SCM Credential
- Update Options (clean, delete on update, update on launch)
- Save. The first sync starts automatically.
Example
| Field | Value |
|---|---|
| Name | webapp-iac |
| SCM Type | git |
| URL | git@github.com:acme/webapp-iac.git |
| Branch | main |
| Credential | github-deploy-key |
Credentials

What each marker means:
- Search box — filter credentials.
- Create Credential — opens the form below.
Encrypted secret store: SSH keys, passwords, cloud tokens, vault keys.
Create Credential

What each marker means:
- Name — short id, e.g.
ssh-prod. - Credential Type — Machine / SCM / Vault / AWS / Azure / GCP / etc.
- Organization — which org owns this credential.
- Create Credential — submits the form (encrypted at rest).
Step by step
- Click Credentials → Add.
- Pick a Credential Type (Machine, Source Control, Vault, AWS, Azure, GCP, …).
- Fill in the required fields (varies by type).
- Save — the secret is encrypted at rest.
Example — SSH key for production
| Field | Value |
|---|---|
| Name | ssh-prod |
| Type | Machine |
| Username | deploy |
| SSH Private Key | (paste key) |
| Privilege Escalation | sudo |
ACCESS
Organizations

What each marker means:
- Create Organization — opens the form below.
Top-level container for users, teams, projects, inventories, templates.
Create Organization

What each marker means:
- Name — short id, e.g.
Platform. - Description — purpose of the org, e.g.
Core platform engineering org. - Max Hosts — soft cap for the org, leave 0 for unlimited.
- Create Organization — submits the form.
Step by step
- Click Organizations → Add.
- Fill in Name and Description.
- Save.
- Open the org → Access tab → add users / teams.
Example
Name:
Platform· Description:Core platform engineering org.
Users

What each marker means:
- Create User — opens the form below.
Local and SSO-mapped users.
Create User

What each marker means:
- Username — login id, e.g.
alice. - Email — contact address, e.g.
alice@example.com. - Password — strong initial password (user can change later).
- Superuser toggle — grants full admin rights; leave off for normal users.
- Create User — submits the form.
Step by step — create a local user
- Click Users → Add.
- Fill in Username, Email, First / Last name, Password.
- Pick User Type (Normal / System Auditor / System Admin).
- Save.
- Open the user → Permissions → grant role on objects.
Example
| Field | Value |
|---|---|
| Username | alice |
alice@example.com |
|
| User Type | Normal |
| Role | Project Admin on webapp-iac |
Teams

What each marker means:
- Create Team — opens the form below.
A Team groups users so permissions can be granted in bulk.
Create Team

What each marker means:
- Name — short id, e.g.
webapp-devs. - Description — purpose, e.g.
Engineers who deploy the webapp. - Organization — parent org for the team.
- Create Team — submits the form.
Step by step
- Click Teams → Add.
- Fill in Name, Organization, Description.
- Save.
- Open the team → Access tab → add members.
- Grant the team a role on a project / template / inventory.
Example
Team:
webapp-devs· Org:Platform· Members:alice,bob· Role:Executeon templatedeploy-webapp.
ADMIN
Instances

What each marker means:
- Page heading — list of cluster nodes. Click any row to enable / disable a node or adjust its capacity.
Physical or virtual nodes that run jobs (control plane + execution plane).
Step by step
- Click Instances.
- Read the table: Hostname, Node Type, Capacity, Used, Status.
- Click an instance → Disable (drain) or Enable.
Example
Drain
worker-03before reboot → mark Disabled → wait for jobs to drain → reboot → mark Enabled.
Instance Groups

What each marker means:
- Page heading — logical pools of instances. Click a group to manage members and policy.
Logical pools of instances. Templates can be pinned to a group (e.g., gpu-pool, eu-west-pool).
Step by step
- Click Instance Groups → Add.
- Fill in Name and Policy (min instances, max idle).
- Save.
- Open the group → Instances tab → attach instances.
- Open a Job Template → set its Instance Group to this one.
Example
| Field | Value |
|---|---|
| Name | eu-west-pool |
| Policy instances minimum | 2 |
| Members | worker-eu-01, worker-eu-02 |
Execution Environments

What each marker means:
- Page heading — container images that hold the runtime for jobs. Click any row to edit pull policy or registry credential.
Container images that hold the runtime (Python, collections, binaries) used to run jobs.
Step by step
- Click Execution Env → Add.
- Fill in:
- Name
- Image (
registry/repo:tag) - Pull Policy (
always/missing/never) - Registry credential
- Save.
- Reference it from a Job Template’s Execution Environment field.
Example
name: ee-aws-2026.04
image: registry.example.com/forge/ee-aws:2026.04
pull: always
credential: harbor-pull
Notifications

What each marker means:
- Create — opens the form below.
Channels Forge can send messages to (email, Slack, PagerDuty, MS Teams, webhooks).
Create Notification Template

What each marker means:
- Name — short id, e.g.
slack-secops. - Notification Type — Email / Slack / PagerDuty / Webhook / MS Teams / etc.
- Create — submits the form (next step asks for type-specific fields like Slack token + channel).
Step by step
- Click Notifications → Add.
- Pick Type (Email / Slack / PagerDuty / Webhook / …).
- Fill in the type-specific fields.
- Click Test → Save.
- Attach the notification to a Job Template, Project, or Workflow on its Notifications tab.
Example — Slack
| Field | Value |
|---|---|
| Name | slack-secops |
| Type | Slack |
| Token | xoxb-… |
| Channel | #secops-alerts |
Topology

What each marker means:
- Page heading — visual mesh map of the cluster. Drag to pan, scroll to zoom, click nodes / links for detail.
Visual map of the cluster: control nodes, hop nodes, execution nodes, mesh links.
Step by step
- Click Topology.
- Drag to pan, scroll to zoom.
- Click any node for details (capacity, version, peers).
- Click any link to see latency and link status.
Example
Suspect a mesh issue → open Topology → spot a red link between
hop-euandworker-eu-02→ click it → read the error.
Settings

What each marker means:
- Page heading — global platform configuration grouped by category (Authentication, System, Jobs, UI, Logging, License).
Global platform configuration: auth, system, jobs, UI, logging, license.
Step by step
- Click Settings.
- Pick a category (Authentication, System, Jobs, UI, Logging, License).
- Edit the field, click Save.
- Some changes (e.g., auth) require a service reload — banner will indicate.
Example — bump max concurrent jobs
Settings → Jobs → set Max Concurrent Jobs to
200→ Save.
Appendix — Common Workflows End-to-End
A) Provision a new dev VM (self-service path)
- Catalog Admin — admin publishes the New Dev VM item.
- End user opens Service Portal → submits the form.
- Item appears in Approvals → approver approves.
- Forge launches the Templates job behind the item.
- End user watches it under My Requests and Jobs.
B) Catch and fix configuration drift
- Take a Fact Snapshot of the production inventory.
- Define an Alert Rule.
- Run Drift Detections on a schedule.
- Mismatches open Drift Alerts.
- Fix via a Templates remediation job.
C) Deploy a new release
- Update playbooks in the Git repo behind your Project.
- Click Sync on the project.
- Open the Templates deploy job → Launch with the new version variable.
- Watch in Jobs.
- Confirm in Analytics → success rate stays green.
End of handbook.