Skill flagged — review recommended

ClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.

essesseff DevOps ALM

v1.0.2

Interact with the essesseff DevOps platform — call the essesseff Public API (templates, organizations, apps, deployments, images, image lifecycle, environmen...

0· 131· 3 versions· 0 current· 0 all-time· Updated 10h ago· MIT-0

Install

openclaw skills install openclaw-essesseff

essesseff Skill

This skill covers two complementary ways to work with the essesseff DevOps platform:

  1. essesseff Public API — direct HTTP calls for managing templates, organizations, apps, images, deployments, environments, packages, and retention policies.
  2. essesseff Onboarding Utility — shell scripts that automate app creation and Argo CD deployment setup.

Quick Reference

Base URL: https://www.essesseff.com/api/v1 (use www to avoid 307 redirects)

Authentication: All requests require X-API-Key: ess_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx header.

Rate limit: 3 requests per 10 seconds. Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Path structure:

  • Global (no account needed): /api/v1/global/...
  • Account-specific: /api/v1/accounts/{account_slug}/... — API key must belong to the account_slug in the path or a 403 is returned.

API Reference Files

For full endpoint details, request/response examples, and query parameters, see:

ReferenceContents
references/api-overview.mdAuth, base URL, rate limiting, error codes
references/api-templates.mdGlobal templates, account-specific templates
references/api-organizations.mdList and detail GitHub orgs for an account
references/api-apps.mdCreate, list, get, update apps; list deployments
references/api-images.mdList images, get image by tag
references/api-images.mdImage lifecycle: get state, transition state
references/api-environments.mdGet environment; set Argo CD URL; DEV→QA→STAGING→PROD lifecycle actions
references/api-packages.mdGet GitHub API payloads for expired package deletion
references/api-retention-policies.mdList and update retention policies

API Endpoint Map

Global

MethodPathPurpose
GET/global/templatesList global templates (optional ?language=go|python|node|java|rust|php)
GET/global/templates/{template_name}Get global template details

Account-Specific (all require matching API key)

MethodPathPurpose
GET/accounts/{account_slug}/templatesList account templates
GET/accounts/{account_slug}/templates/{template_name}Get account template details
GET/accounts/{account_slug}/organizationsList orgs for account
GET/accounts/{account_slug}/organizations/{org_login}Get org detail + app list
GET/accounts/{account_slug}/organizations/{org_login}/appsList apps
POST/accounts/{account_slug}/organizations/{org_login}/apps?app_name={name}Create app
GET/accounts/{account_slug}/organizations/{org_login}/apps/{app_name}Get app detail
PATCH/accounts/{account_slug}/organizations/{org_login}/apps/{app_name}Update app
GET.../apps/{app_name}/deploymentsList deployments
GET.../apps/{app_name}/imagesList images
GET.../apps/{app_name}/images/{image_tag}Get image by tag
GET.../apps/{app_name}/images/{image_tag}/lifecycleGet image lifecycle state
POST.../apps/{app_name}/images/{image_tag}/lifecycleTransition image lifecycle state
GET.../apps/{app_name}/environments/{env}Get current env deployment
POST.../apps/{app_name}/environments/{env}/set-argocd-application-urlSet/clear Argo CD URL
POST.../apps/{app_name}/environments/DEV/declare-rcMark DEV image as RC
POST.../apps/{app_name}/environments/QA/accept-rcAccept RC → deploy to QA
POST.../apps/{app_name}/environments/QA/reject-rcReject RC
POST.../apps/{app_name}/environments/QA/declare-stableMark QA image as STABLE
POST.../apps/{app_name}/environments/QA/declare-rejectedMark QA image as REJECTED
POST.../apps/{app_name}/environments/STAGING/deploy-stableDeploy STABLE to STAGING
POST.../apps/{app_name}/environments/PROD/deploy-stableDeploy STABLE to PROD (no OTP)
GET.../apps/{app_name}/notifications-secretGet notifications-secret.yaml for Argo CD
GET.../apps/{app_name}/packages/delete-packagesGet expired package deletion payloads
GET.../apps/{app_name}/retention-policiesList retention policies (filter by ?state=)
PATCH.../apps/{app_name}/retention-policies?state={state}Create or update a retention policy for a lifecycle state

Image Lifecycle State Machine

Images progress through states in this order:

BUILD → DEV → RC → QA → STABLE → STAGING → PROD
              ↑  ↓  ↓
            REJECTED

Key transitions via API:

  • DEV/declare-rc — promotes current DEV image to RC (no body)
  • QA/accept-rc — body: {"image_tag": "v1.2.3"} → sets QA, deploys to QA
  • QA/reject-rc — body: {"image_tag": "v1.2.3"} → sets REJECTED
  • QA/declare-stable — no body → sets STABLE on current QA image
  • QA/declare-rejected — no body → sets REJECTED on current QA image
  • STAGING/deploy-stable — body: {"image_tag": "v1.2.3"} → deploys to STAGING
  • PROD/deploy-stable — body: {"image_tag": "v1.2.3", "deployment_note": "CR#123"} → deploys to PROD (no OTP required via API)

Alternatively, use POST .../images/{image_tag}/lifecycle with body {"state": "QA"} for direct lifecycle transitions.

Onboarding Utility Reference

For shell-script-based automation (no API calls required), see:

ReferenceContents
references/onboarding-utility.mdFull guide: setup, commands, how it works
references/prerequisites.mdSystem binaries, PATs, K8s/Argo CD prereqs
references/non-subscriber-mode.mdClone/replace/push workflow without a subscription

The utility (essesseff-onboard.sh) accepts:

  • --list-templates — list available templates
  • --create-app — create all 9 repos (via API for subscribers, clone/replace/push for non-subscribers)
  • --setup-argocd dev,qa,staging,prod — configure Argo CD for each environment
  • --non-essesseff-subscriber-mode — no essesseff API required
  • --config-file .essesseff — path to config file
  • --verbose — debug output

Common Errors

CodeMeaning
400Invalid request parameters
401Invalid or missing API key
403API key does not match the account_slug in the path
404Resource not found
429Rate limit exceeded — wait and retry
500Server error

Version tags

latestvk974yas752tgpna7fvc7z4npz183sbnf

Runtime requirements

🦞 Clawdis
Binscurl, bash, git, jq, kubectl
EnvESSESSEFF_API_KEY, ESSESSEFF_ACCOUNT_SLUG, GITHUB_ORG, APP_NAME, GITHUB_TOKEN, ARGOCD_MACHINE_USER, ARGOCD_MACHINE_EMAIL, GITHUB_ORG_ADMIN_PAT, TEMPLATE_NAME, TEMPLATE_IS_GLOBAL, K8S_NAMESPACE
Primary envESSESSEFF_API_KEY