Skip to content
Back to skills

Sales Demos Env Urls

ASecurity

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

Pro shows the line behind each finding and how to fix it

Scanned October 6, 2026

npx -y skills add ericcames/sales.demos --skill sales-demos-env-urls --agent claude-code

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.

Security grade badge for Sales Demos Env Urls
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ericcames-sales-demos-env-urls/badge)](https://www.skillsdirectory.com/skills/ericcames-sales-demos-env-urls)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…