{"id":50858840,"url":"https://github.com/operaton/operaton-screenshot-automation","last_synced_at":"2026-06-14T20:03:33.137Z","repository":{"id":327898403,"uuid":"1109475095","full_name":"operaton/operaton-screenshot-automation","owner":"operaton","description":"Automated toolkit for capturing Operaton webapp screenshots and running Front-end tests","archived":false,"fork":false,"pushed_at":"2025-12-15T08:55:25.000Z","size":398,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"dev","last_synced_at":"2025-12-18T07:11:57.294Z","etag":null,"topics":["automation","documentation","frontend-testing","operaton","screenshots"],"latest_commit_sha":null,"homepage":"https://operaton.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/operaton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-03T21:22:32.000Z","updated_at":"2025-12-12T14:15:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/operaton/operaton-screenshot-automation","commit_stats":null,"previous_names":["operaton/operaton-screenshot-automation"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/operaton/operaton-screenshot-automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operaton%2Foperaton-screenshot-automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operaton%2Foperaton-screenshot-automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operaton%2Foperaton-screenshot-automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operaton%2Foperaton-screenshot-automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/operaton","download_url":"https://codeload.github.com/operaton/operaton-screenshot-automation/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operaton%2Foperaton-screenshot-automation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34335689,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","documentation","frontend-testing","operaton","screenshots"],"created_at":"2026-06-14T20:03:32.331Z","updated_at":"2026-06-14T20:03:33.125Z","avatar_url":"https://github.com/operaton.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⚠️ Operaton Screenshot Automation ⚠️\n\n[![status](https://img.shields.io/badge/status-work%20in%20progress-yellow)](https://github.com/sgort/operaton-screenshot-automation)\n[![license](https://img.shields.io/badge/license-Apache%202.0-blue)](LICENSE)\n\n[![release](https://img.shields.io/github/v/release/sgort/operaton-screenshot-automation)](https://github.com/sgort/operaton-screenshot-automation/releases)\n[![CI](https://img.shields.io/github/actions/workflow/status/sgort/operaton-screenshot-automation/ci.yml?branch=dev\u0026label=CI)](https://github.com/sgort/operaton-screenshot-automation/actions/workflows/ci.yml)\n[![Node](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](package.json)\n\n\u003e 🚧 **Work in Progress — Baseline Under Development** 🚧\n\u003e\n\u003e This repository is a **baseline toolkit** intended to be battle-tested in practice. APIs, scripts,\n\u003e and automation may change frequently. **Not ready for production use**.\n\u003e\n\u003e Contributions, testing, and feedback are highly encouraged to improve the project.\n\n---\n\nAutomated toolkit for capturing Operaton webapp screenshots to replace Camunda screenshots in\ndocumentation.\n\n## Features\n\n- **Documentation Scanning** : Scan docs for image references and generate capture configs\n- **Process Deployment** : Deploy BPMN/DMN processes to Operaton\n- **Data Generation** : Create users, groups, process instances, and tasks\n- **Scenario Simulation** : Create specific states (tokens, history, task states)\n- **Incident Creation** : Generate intentional failures for error screenshots\n- **Screenshot Capture** : Automated Puppeteer-based screen capture\n- **Screenshot Replacement** : Copy captured screenshots to documentation\n- **Environment Reset** : Clean wipe functionality for fresh starts\n\n## Quick Start\n\n```bash\n# 1. Install dependencies\nmake install\n\n# 2. Configure environment\ncp .env.example .env\n# Edit .env with your Operaton instance details\n\n# 3. Check connection\nmake check\n\n# 4. Run the screenshot workflow\nmake screenshots-workflow\n```\n\n## Screenshot Workflow\n\nThe complete workflow for updating documentation screenshots:\n\n```bash\n# 1. Scan documentation for image references\nmake scan-docs\n\n# 2. Select a generated config (cockpit, tasklist, admin, or all)\ncp cp output/scan/screenshots-admin.json config/screenshots.json\n\n# 3. Set up the Operaton environment\nmake  deploy # Deploy processes\nmake data # Generate test data\n\n# 4. Capture screenshots\nmak capture\n\n# 5. Preview what will be replaced\nmake  replace-screenshots\n\n# 6. Actually replace files in documentation\nmake replace-screenshots-live\n\n# 7. Commit changes in documentation repo\n\ncd /path/to/documentation\ngit add -A \u0026\u0026 git commit -m \"Update webapp screenshots\"\n```\n\n## Available Commands\n\nRun `make help` to see all available commands:\n\n### Setup \u0026 Conncetion\n\n| Command        | Description                       | Docs                           |\n| -------------- | --------------------------------- | ------------------------------ |\n| `make install` | Install npm dependencies          |                                |\n| `make setup`   | Full setup: install + create .env |                                |\n| `make check`   | Check connection to Operaton      | [📖](docs/check-connection.md) |\n| `make status`  | Show environment status           | [📖](docs/show-status.md)      |\n\n### Documentation Scanning and Replacement\n\n| Command                         | Description                                      | Docs                                |\n| ------------------------------- | ------------------------------------------------ | ----------------------------------- |\n| `make analyze`                  | Analyze documentation for screenshots to replace | [📖](docs/analyze-documentation.md) |\n| `make scan-docs`                | Scan docs, generate configs                      | [📖](docs/scan-docs.md)             |\n| `make replace-screenshots`      | Preview replacements (dry run)                   | [📖](docs/replace-screenshots.md)   |\n| `make replace-screenshots-live` | Actually replace in docs                         | [📖](docs/replace-screenshots.md)   |\n| `make screenshots-workflow`     | Show full workflow instructions                  |                                     |\n\n### Deployment \u0026 Data\n\n| Command       | Description                  | Docs                           |\n| ------------- | ---------------------------- | ------------------------------ |\n| `make deploy` | Deploy BPMN/DMN processes    | [📖](docs/deploy-processes.md) |\n| `make users`  | Create users and groups only | [📖](docs/generate-data.md)    |\n| `make data`   | Generate full test data      | [📖](docs/generate-data.md)    |\n\n### Simulation and Incidents\n\n| Command                 | Description                                    | Docs                             |\n| ----------------------- | ---------------------------------------------- | -------------------------------- |\n| `make simulate`         | Run all simulation scenarios                   | [📖](docs/simulate-scenarios.md) |\n| `make simulate-tokens`  | Create instances with tokens at various stages | [📖](docs/simulate-scenarios.md) |\n| `make simulate-history` | Generate completed instances for history views | [📖](docs/simulate-scenarios.md) |\n| `make incidents`        | Create all types of incidents                  | [📖](docs/create-incidents.md)   |\n\n### Screenshot Capture\n\n| Command                | Description                        | Docs                              |\n| ---------------------- | ---------------------------------- | --------------------------------- |\n| `make capture`         | Capture all screenshots (headless) | [📖](docs/capture-screenshots.md) |\n| `make capture-debug`   | Capture with debug output          | [📖](docs/capture-screenshots.md) |\n| `make capture-visible` | Capture with visible browser       | [📖](docs/capture-screenshots.md) |\n\n### Cleanup \u0026 Reset\n\n| Command            | Description                        | Docs                            |\n| ------------------ | ---------------------------------- | ------------------------------- |\n| `make reset`       | Reset Operaton (with confirmation) | [📖](docs/reset-environment.md) |\n| `make reset-force` | Reset without confirmation         | [📖](docs/reset-environment.md) |\n| `make clean`       | Clean local output files           |                                 |\n\n### Testing\n\n```bash\nmake test            # Run all chaos tests\nmake chaos-check     # Test check-connection.js\nmake chaos-status    # Test show-status.js\nmake chaos-deploy    # Test deploy-processes.js\nmake chaos-data      # Test generate-data.js\nmake chaos-simulate  # Test simulate-scenarios.js\nmake chaos-incidents # Test create-incidents.js\nmake chaos-capture   # Test capture-screenshots.js\n```\n\n## Configuration\n\n### Environment Variables (.env)\n\n```bash\n# Operaton Instance\nOPERATON_BASE_URL=https://operaton-doc.open-regels.nl\nOPERATON_REST_URL=https://operaton-doc.open-regels.nl/engine-rest\nOPERATON_USERNAME=demo\nOPERATON_PASSWORD=demo\n\n# Screenshot Capture\nSCREENSHOT_WIDTH=1920\nSCREENSHOT_HEIGHT=1080\nSCREENSHOT_SCALE=2\nHEADLESS=true\nOUTPUT_DIR=./output/screenshots\n\n# Documentation Paths (required for scan/replace)\nDOCS_PATH=C:/Users/username/Development/documentation/docs\nSTATIC_PATH=C:/Users/username/Development/documentation/static/img\n\n# Replacement Settings\nDRY_RUN=true\nVERBOSE=false\n\n# Debug\nDEBUG=false\n```\n\n### Generated Reports\n\n```bash\nCommand                   Report Location\n------------------------- ----------------------------------\nmake scan-docs            config/generated/scan-report.md\nmake replace-screenshots  output/replace-report.md\n```\n\n### Generated Configs\n\nAfter running `make scan-docs`:\n\n```bash\nconfig/generated/screenshots-cockpit.json   Cockpit webapp screenshots\nconfig/generated/screenshots-tasklist.json  Tasklist webapp screenshots\nconfig/generated/screenshots-admin.json     Admin webapp screenshots\nconfig/generated/screenshots-welcome.json   Welcome webapp screenshots\nconfig/generated/screenshots-all.json       All webapp screenshots\nconfig/generated/scan-report.md             Scan summary and statistics\n```\n\n## Directory Structure\n\n```\noperaton-screenshot-automation/\n├── Makefile                    # Command interface\n├── package.json                # Node.js dependencies\n├── .env.example                # Environment template\n├── config/\n│   ├── screenshots.json        # Active screenshot config\n│   └── generated/              # Generated configs from scan\n├── docs/                       # Script documentation\n├── processes/\n│   ├── bpmn/                   # BPMN process files\n│   ├── dmn/                    # DMN decision files\n│   └── cmmn/                   # CMMN case files\n├── scripts/\n│   ├── check-connection.js\n│   ├── show-status.js\n│   ├── deploy-processes.js\n│   ├── generate-data.js\n│   ├── simulate-scenarios.js\n│   ├── create-incidents.js\n│   ├── capture-screenshots.js\n│   ├── scan-docs.js\n│   ├── replace-screenshots.js\n│   └── reset-environment.js\n├── tests/                      # Chaos test suites\n└── output/\n    ├── screenshots/            # Captured screenshots\n    └── replace-report.md       # Replacement report\n```\n\n## Typical Workflows\n\n### Update All Admin Screenshots\n\n```bash\nmake reset-force\nmake deploy \u0026\u0026 make data\ncp config/generated/screenshots-admin.json config/screenshots.json\nmake capture\nmake replace-screenshots\nmake replace-screenshots-live\n```\n\n### Update All Webapp Screenshots\n\n```bash\nmake reset-force\nmake deploy \u0026\u0026 make data \u0026\u0026 make simulate\ncp config/generated/screenshots-all.json config/screenshots.json\nmake capture\nmake replace-screenshots-live\n```\n\n### Fresh Full Workflow with Incidents\n\n```bash\nmake fresh    # Reset + Deploy + Data + Simulate + Incidents + Capture\n```\n\n## Troubleshooting\n\n### Connection Issues\n\n```bash\nmake check  # Diagnose connection problems\nDEBUG=true make check\n```\n\n### Screenshots Not Capturing\n\n```bash\nmake capture-visible  # Run with visible browser\nDEBUG=true make capture\n```\n\n### Processes Not Deploying\n\n- Check process XML validity\n- Verify REST API permissions\n- Check for existing deployments: `make list-deployments`\n\n### Incidents Not Created\n\n- Ensure processes are deployed first\n- Check job executor is running\n- Wait for async jobs: incidents may take a few seconds\n\n### Scan Not Finding Images\n\n- Verify DOCS_PATH points to the docs folder\n- Check documentation has webapps/ folder structure\n- Images must be in webapps/cockpit/, webapps/admin/, etc.\n\n### Replacement Not Working\n\n- Set DRY_RUN=false or use make replace-screenshots-live\n- Verify DOCS_PATH and STATIC_PATH are correct\n- Check output/replace-report.md for details\n\n## Adding Custom Processes\n\n1. Add BPMN/DMN files to `processes/` directory\n2. Update `config/screenshots.json` with new screenshot definitions\n3. Add deployment config to deploy script if needed\n4. Run `make deploy`\n\n## License\n\nLicensed under the Apache License, Version 2.0. See the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperaton%2Foperaton-screenshot-automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foperaton%2Foperaton-screenshot-automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperaton%2Foperaton-screenshot-automation/lists"}