docs(handover): standard apple-developer-multi-prodotto v1.0 (broadcast 31/5)
Una sola iscrizione Apple Developer per tutta la suite, Team 5W6WYDQKTS, Bundle ID convention it.<prodotto>.app, credenziali Apple nel vault sotto tier1__shared-apple__developer/. Onboarding nuovo prodotto mobile in 30 min. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
355c3fb6e6
commit
306960cbf0
18
CLAUDE.md
18
CLAUDE.md
@ -25,6 +25,24 @@
|
||||
**Spec completa**: `STANDARD_TIMEZONE_CONVENTIONS.md` (slug `timezone-conventions` v1.0, owner VIGILE).
|
||||
<!-- STANDARD:timezone-conventions:v1.0:end -->
|
||||
|
||||
## 🍎 STANDARD apple-developer-multi-prodotto 2026-05-31 (per chi fa app iOS)
|
||||
|
||||
> Standard cross-suite `hub_standards` id=23 v1.0. Doc completo: `docs/INCOMING_FROM_AGILEHUB_2026_05_31_apple_developer_multi_prodotto.md`.
|
||||
|
||||
**Cosa dice in 5 punti**:
|
||||
- **1 sola iscrizione** Apple Developer Program ($99/anno per tutta la suite), Team ID `5W6WYDQKTS`, Apple ID `devapp@agile.software`.
|
||||
- **Bundle ID convention**: `it.<prodotto>.app` (es. `it.alltax.app`, `it.dfm-pro.app`, `it.nis2.app`).
|
||||
- **Credenziali Apple nel vault**: namespace condiviso `tier1__shared-apple__developer/*` (`apple_id`, `team_id`, `authkey_p8`, `authkey_id`, `issuer_id`, `password_main`). App vault dedicata `shared-apple-reader` con scope read-only.
|
||||
- **Onboarding nuovo prodotto mobile in 30 min**: procedura in §3 dello standard (Bundle ID → App Store Connect entry → `ascAppId` → `eas.json` → `eas credentials` → primo build). Da quel momento il prodotto builda + submitta autonomo.
|
||||
- ⚠️ **NON committare MAI** `.p8` o password Apple. Aggiungere al `.gitignore`: `*.p8`, `AuthKey_*.p8`, `apple-developer.txt`, `appstore-connect-api-key.txt`.
|
||||
|
||||
**Se il tuo prodotto non avrà app iOS**: solo informativo, nessuna azione richiesta.
|
||||
|
||||
**Stato adoption suite**: ALLTAX `acknowledged` (pending `ascAppId`), DFM PRO `implemented`, altri `pending` (aderiscono se serve l'app).
|
||||
|
||||
---
|
||||
|
||||
|
||||
## 🔵 VAULT-STEWARD chain fix 2026-05-31 (informativo)
|
||||
|
||||
> Aggiunto da VIGILE. Doc completo: `docs/INCOMING_FROM_AGILEHUB_2026_05_31_vault_chain_fix.md`.
|
||||
|
||||
@ -0,0 +1,89 @@
|
||||
# OUTGOING → TUTTI i container DevEnv — Apple Developer multi-prodotto (2026-05-31)
|
||||
|
||||
> **Da**: AgileHub-side (VIGILE)
|
||||
> **A**: ogni sessione Claude su tutti i dev container.
|
||||
> **Trigger**: direttiva utente "studia tu un modo per rendere autonomo ALLTAX" + politica broadcast cross-suite. Standard `hub_standards` id=23 v1.0 `apple-developer-multi-prodotto`.
|
||||
|
||||
---
|
||||
|
||||
## TL;DR
|
||||
|
||||
**Una sola iscrizione Apple Developer Program** ($99/anno) per **TUTTA la suite AgileHub** — non per prodotto. Tutti i prodotti che vogliono fare app iOS pubblicano sotto lo stesso Team (`5W6WYDQKTS`), distinguendosi solo per Bundle ID.
|
||||
|
||||
| Cosa | Stato |
|
||||
|---|---|
|
||||
| Apple Developer account condiviso `devapp@agile.software` | ✅ attivo |
|
||||
| Team ID `5W6WYDQKTS` | ✅ noto |
|
||||
| App Store Connect API Key `7B76D7Y596` + Issuer ID `b710802d-…` | ✅ nel vault |
|
||||
| ALLTAX app iOS (Bundle `it.alltax.app`) | ⏳ manca solo `ascAppId` da App Store Connect, poi autonomo |
|
||||
| DFM PRO app iOS | ✅ già autonomo (account, .p8, eas.json) |
|
||||
| Altri prodotti (NIS2, SUSTAINAI, ALLRISK, …) | Possono aderire seguendo l'onboarding in 30 min |
|
||||
|
||||
---
|
||||
|
||||
## Cosa cambia (vincolante)
|
||||
|
||||
### 1. Credenziali Apple sono nel vault — namespace condiviso
|
||||
|
||||
**Era**: `.p8` e `apple-developer.txt` con password in chiaro in `<prodotto>/docs/credentials/`.
|
||||
**Ora**: tutto sotto `tier1__shared-apple__developer/*` nel vault:
|
||||
- `apple_id`, `team_id`, `authkey_id`, `authkey_p8`, `issuer_id`, `password_main`, `bundle_id_convention`
|
||||
|
||||
**Da fare lato vostro** (solo se il vostro prodotto avrà un'app iOS):
|
||||
- Aggiungere al `.env` del container: `VAULT_APP_TOKEN=sk_shared-apple-reader_*` (chiedere a VIGILE) + `VAULT_URL=https://vault-steward:8443`.
|
||||
- Connettere il container alla network `vault-net` (probabilmente già fatto).
|
||||
- Negli script EAS (`eas-ios-build.sh`, `.exp`, ecc.) fetchare le credenziali on-demand invece di leggere dal filesystem. Pattern in §4 dello standard.
|
||||
|
||||
### 2. Bundle ID convention
|
||||
|
||||
Pattern: **`it.<prodotto-lowercase>.app`** (es. `it.alltax.app`, `it.dfm-pro.app`, `it.nis2.app`). Eccezioni motivate (branding cliente) vanno documentate nel CLAUDE.md del prodotto.
|
||||
|
||||
### 3. `.p8` e password Apple ID NON vanno mai committati
|
||||
|
||||
`.gitignore` di ogni prodotto deve avere: `*.p8`, `AuthKey_*.p8`, `apple-developer.txt`, `appstore-connect-api-key.txt`.
|
||||
|
||||
ALLTAX e DFM PRO sono già a posto (verificato). Per gli altri: aggiungere se necessario.
|
||||
|
||||
---
|
||||
|
||||
## Onboarding nuovo prodotto mobile (~30 minuti)
|
||||
|
||||
Procedura completa in `docs/STANDARD_APPLE_DEVELOPER_MULTI_PRODOTTO.md` §3, qui il riassunto:
|
||||
|
||||
1. **Decidere Bundle ID** (`it.<prodotto>.app`)
|
||||
2. **Creare app su App Store Connect** (browser, `+`, ottieni `ascAppId` numerico)
|
||||
3. **Verificare Bundle ID su developer.apple.com** (App IDs)
|
||||
4. **Configurare `eas.json`** (template completo nello standard)
|
||||
5. **EAS credentials** (`eas credentials` interattivo, una tantum, usa la API key dal vault)
|
||||
6. **Primo build di prova** (`eas build -p ios --profile development`)
|
||||
|
||||
Da qui in poi il prodotto **builda e submitta autonomamente**, senza dipendere da altri prodotti né da AgileHub-side.
|
||||
|
||||
---
|
||||
|
||||
## Anti-pattern da evitare
|
||||
|
||||
| ❌ Sbagliato | ✅ Corretto |
|
||||
|---|---|
|
||||
| `.p8` committato nel repo | `.gitignore` + fetch on-demand dal vault |
|
||||
| Password Apple ID in `*.txt` in chiaro | Vault `password_main` o app-specific password |
|
||||
| Iscriverti a un secondo Apple Developer Program ($99 sprecati) | Usare l'account condiviso `devapp@agile.software` + tuo Bundle ID |
|
||||
| `eas login` interattivo ogni build | EXPO_TOKEN nel vault + API key configurata una tantum |
|
||||
|
||||
---
|
||||
|
||||
## ALLTAX — ultimi 15 minuti per essere autonomo
|
||||
|
||||
Solo per la sessione TaxAi: vai su https://appstoreconnect.apple.com/ → My Apps → "+" → Bundle ID `it.alltax.app` → nome "ALLTAX" → annota l'**App ID numerico** che ti dà Apple → sostituisci `"ascAppId": "PENDING_APP_STORE_CONNECT"` in `mobile/eas.json` con quel numero → da quel momento `eas build -p ios && eas submit -p ios` funziona autonomamente. Doc puntuale: `taxai-agile/docs/TAXAI_IOS_BUILD_SPEC.md` + `MOBILE_IOS_DEPLOYMENT_GUIDE.md`.
|
||||
|
||||
---
|
||||
|
||||
## Riferimenti
|
||||
|
||||
- Standard cross-suite: `agile-services/docs/STANDARD_APPLE_DEVELOPER_MULTI_PRODOTTO.md` (`hub_standards` id=23 v1.0)
|
||||
- VIGILE audit log: `agile-services/docs/VIGILE_AUDIT_LOG.md` entry 31/5 `[APPLE-DEVELOPER-MULTI-PRODOTTO]`
|
||||
- Spec orchestrazione TSSP mobile: `docs/SPEC_TSSP_V3_MOBILE_BUILDS.md` (compatible, scope diverso)
|
||||
|
||||
---
|
||||
|
||||
**Fine documento.** Lavorate sicuri.
|
||||
Loading…
Reference in New Issue
Block a user