Regenerate the environment URL reference file (env-urls.yml at the repo root) — a single-file lookup of every product URL and optionally credentials across all environments. Runs playbooks/generate_env_urls.yml. TRIGGER when: the user has repointed an environment, asks for all the URLs, or env-urls.yml is stale or missing. SKIP: if the user only needs one specific URL — read connection.yml instead.
2 stars
0 votes
0 copies
0 views
Added October 6, 2026
devopspythongobashgit
Security analysis
A96/100
mediumInstalls packages at runtime which could introduce malicious dependencies
Installs into .claude/skills of the current project.
Are you the author of Sales Demos Env Urls?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ericcames-sales-demos-env-urls)
---
name: sales-demos-env-urls
description: "Regenerate the environment URL reference file (env-urls.yml at the repo root) — a single-file lookup of every product URL and optionally credentials across all environments. Runs playbooks/generate_env_urls.yml. TRIGGER when: the user has repointed an environment, asks for all the URLs, or env-urls.yml is stale or missing. SKIP: if the user only needs one specific URL — read connection.yml instead."
---
# sales-demos-env-urls
Regenerates `env-urls.yml` at the repo root from the `connection.yml` files
(and any `local.yml` overrides). The file is gitignored — credentials are
included by default (#426, #429, #565).
**It is not in `inventory/` any more, and must not go back** (#582). Every
command passes `-i inventory`, and Ansible parses every file in that directory
as an inventory source — the old location printed
`Skipping key (portal) in group (sandbox)` warnings on every run. Regenerating
deletes a leftover `inventory/env-urls.yml`.
## There is an AAP path too (#525)
**AAP Ecosystem - Generate Environment URLs** runs this same playbook from AAP.
From AAP, credentials are omitted (the EE has no vault password file), but the
URLs appear in the job log — useful for verifying a repoint.
## Preflight Check
```bash
./utilities/preflight.sh "${ENV:-sandbox}"
```
Verify the Python script and its dependencies exist:
```bash
test -f utilities/generate-env-urls.py || { echo "MISSING: generate-env-urls.py"; exit 1; }
python3 -c "import yaml" 2>/dev/null || { echo "MISSING: pip install pyyaml"; exit 1; }
```
## Run
Default: generate with credentials (the full reference).
```bash
ENV="${ENV:-sandbox}"
mkdir -p ~/ansible-logs
export ANSIBLE_LOG_PATH=~/ansible-logs/generate-env-urls-$(date +%F-%H%M).log
./utilities/run-ansible.sh playbooks/generate_env_urls.yml -i inventory --limit "$ENV" \
-e target_env="$ENV" \
--vault-id sales.demos@~/secrets/.vault_pass_sales_demos
```
Without credentials (URLs only):
```bash
./utilities/run-ansible.sh playbooks/generate_env_urls.yml -i inventory --limit "$ENV" \
-e target_env="$ENV" \
-e generate_env_urls_with_creds=false \
--vault-id sales.demos@~/secrets/.vault_pass_sales_demos
```
## Verify
Check that the output file exists and is current:
```bash
python3 utilities/generate-env-urls.py --check
```
This exits non-zero if the file is missing or the URLs in it don't match
what the current `connection.yml` files would produce.