sales-demos-portallisted
Install: claude install-skill ericcames/sales.demos
# sales-demos-portal
Deploy the AAP self-service portal into an RHDP environment. Takes about 11
minutes end to end.
This skill contains **no logic**. All the work is in
[`playbooks/portal.yml`](../../../playbooks/portal.yml). See `CLAUDE.md` →
*Skills and playbooks*.
## What it does
1. Creates a gateway OAuth application (delete + recreate — never PATCH
`client_secret`, the gateway hashes differently and gives `invalid_client`).
2. Creates the `aap-portal` namespace, a durable service token, and three
Secrets the chart expects.
3. Deploys `redhat-rhaap-portal` 2.1.0 via Helm.
4. Updates the OAuth redirect URI to the actual portal Route.
5. Syncs the org list from AAP so all organizations are visible.
6. Patches the portal ConfigMap: 1-minute sync interval, permissions disabled
so non-admin users can see and launch templates.
## Preflight Check
```bash
./utilities/preflight.sh "${ENV:-sandbox}" --k8s
# helm binary is available
command -v helm >/dev/null \
&& echo "✅ helm $(helm version --short 2>/dev/null)" \
|| echo "❌ helm not found — https://helm.sh/docs/intro/install/"
# Kubeconfig for Helm module
ENV=${ENV:-sandbox}
test -f ".kube/${ENV}.kubeconfig" \
&& echo "✅ kubeconfig exists for $ENV" \
|| bash utilities/make-kubeconfig.sh "$ENV"
```
If any check fails, stop and tell the user exactly which one and the fix shown
beside it. Do not attempt the run with a failing prerequisite.
```bash
python3 - <<'PY'
import os, ssl, json, urllib.request
ctx =