[CONTEXT+MKTG] Contesto sessione + HTML migliorati per comunicazione terze parti
- CONTEXT_LAST_SESSION.md: documento completo di tutto lo sprint B2B - mktg-api-doc.html: Quick Start box con chiave attiva, flusso visivo 4 step, curl pronti - integrazioniext.html tab Inviti: tabella "Chi fa cosa" per ruolo, sezione mktg-agile con chiave API + 3 curl pronti, Quick Start aggiornato con tabella risorse per destinatario Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
13eb8ae8a8
commit
f7347ccd8c
+100
-7
@@ -324,9 +324,46 @@
|
||||
<strong>Sistema Inviti / Licenze B2B:</strong> NIS2 Agile genera token di invito che abilitano
|
||||
il provisioning automatico di organizzazioni e utenti. L'e-commerce o il partner riceve l'invito,
|
||||
lo consegna al cliente finale (es. lg231), che lo usa per attivarsi automaticamente.
|
||||
L'accesso si interrompe alla scadenza dell'invito.
|
||||
L'accesso si interrompe alla scadenza della licenza.
|
||||
</div>
|
||||
|
||||
<div class="section-title">Chi fa cosa — ruoli nell'ecosistema</div>
|
||||
<table class="api-table" style="margin-bottom:1.5rem">
|
||||
<thead><tr><th>Sistema</th><th>Ruolo</th><th>API usata</th><th>Auth</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>NIS2 Admin</strong><br><span style="font-size:.72rem;color:var(--text-secondary)">o mktg-agile</span></td>
|
||||
<td>Genera i token licenza, fissa piano/durata/utenti/prezzo</td>
|
||||
<td><code>POST /api/invites/create</code></td>
|
||||
<td><span class="badge-status s-pending" style="font-size:.65rem">API Key admin:licenses</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>E-commerce</strong></td>
|
||||
<td>Riceve token all'acquisto, lo consegna al cliente con l'ordine</td>
|
||||
<td>— (semplice consegna token)</td>
|
||||
<td><span class="badge-status s-pending" style="font-size:.65rem">API Key admin:licenses</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>lg231 / partner</strong></td>
|
||||
<td>Valida il token, fa provisioning automatico per il cliente</td>
|
||||
<td><code>GET /api/invites/validate</code><br><code>POST /api/services/provision</code></td>
|
||||
<td><span class="badge-status s-used" style="font-size:.65rem">invite_token nel body</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Cliente finale</strong></td>
|
||||
<td>Apre invite_url e si registra in autonomia via wizard</td>
|
||||
<td><code>onboarding.html?invite=inv_...</code></td>
|
||||
<td><span class="badge-status" style="font-size:.65rem;background:rgba(156,163,175,.1);color:#9ca3af">nessuna auth</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>NIS2 Admin</strong></td>
|
||||
<td>Monitora uso licenze, revoca, rigenera</td>
|
||||
<td><code>GET /api/invites/list</code><br><code>DELETE /api/invites/{id}</code></td>
|
||||
<td><span class="badge-status s-pending" style="font-size:.65rem">API Key o JWT super_admin</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="section-title">Flusso completo</div>
|
||||
<div class="code-block" style="font-family:monospace;line-height:1.8;font-size:.82rem">
|
||||
<span style="color:#22c55e">1. GENERAZIONE</span> NIS2 Admin (super_admin)
|
||||
@@ -458,6 +495,31 @@ curl "https://nis2.agile.software/api/invites/validate?token=inv_a1b2c3..."
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="section-title">Per mktg-agile / E-commerce — Quick Start</div>
|
||||
<div class="callout">
|
||||
Chiave API già attiva per mktg-agile: <code style="color:#4ade80">nis2_mktg_8c8bd38e78fccb9faa749d8601051f42</code>
|
||||
· Scope: <code>admin:licenses</code> · Scade: 2028-03-07
|
||||
· Doc completa: <a href="/mktg-api-doc.html" style="color:var(--primary)">mktg-api-doc.html</a>
|
||||
· Pannello web: <a href="/licenseExt.html" style="color:var(--primary)">licenseExt.html</a>
|
||||
</div>
|
||||
<div class="code-block"><span class="cmt"># 1. Crea licenza (mktg-agile → NIS2)</span>
|
||||
curl -X POST https://nis2.agile.software/api/invites/create \
|
||||
-H <span class="str">"X-API-Key: nis2_mktg_8c8bd38e78fccb9faa749d8601051f42"</span> \
|
||||
-H <span class="str">"Content-Type: application/json"</span> \
|
||||
-d <span class="str">'{"plan":"professional","duration_months":12,"max_users_per_org":10,
|
||||
"label":"Ordine MKT-001","channel":"ecommerce","price_eur":990}'</span>
|
||||
|
||||
<span class="cmt"># → risposta contiene token (inv_xxx) e invite_url</span>
|
||||
<span class="cmt"># → consegna invite_url al cliente nel messaggio di conferma ordine</span>
|
||||
|
||||
<span class="cmt"># 2. Verifica stato licenza in qualsiasi momento</span>
|
||||
curl -H <span class="str">"X-API-Key: nis2_mktg_8c8bd38e78fccb9faa749d8601051f42"</span> \
|
||||
"https://nis2.agile.software/api/invites/42"
|
||||
|
||||
<span class="cmt"># 3. Lista licenze attive per canale ecommerce</span>
|
||||
curl -H <span class="str">"X-API-Key: nis2_mktg_8c8bd38e78fccb9faa749d8601051f42"</span> \
|
||||
"https://nis2.agile.software/api/invites/list?channel=ecommerce&status=pending"</div>
|
||||
|
||||
<div class="callout">
|
||||
<strong>Sicurezza token:</strong> il token <code>inv_</code> viene restituito in chiaro UNA SOLA VOLTA
|
||||
alla creazione. Nel DB è conservato solo il hash SHA-256. Il <code>token_prefix</code> (es: <code>inv_a1b2c3...</code>)
|
||||
@@ -729,14 +791,45 @@ curl -H <span class="str">"X-API-Key: nis2_TUA_CHIAVE"</span> \
|
||||
curl -H <span class="str">"X-API-Key: nis2_TUA_CHIAVE"</span> \
|
||||
"https://nis2.agile.software/api/services/risks/feed?level=high,critical"</div>
|
||||
|
||||
<div class="section-title">Contatti e riferimenti</div>
|
||||
<div class="section-title">Risorse per ogni tipo di integratore</div>
|
||||
<table class="api-table">
|
||||
<thead><tr><th>Destinatario</th><th>Risorsa</th><th>URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>App NIS2 Agile</td><td><a href="https://nis2.agile.software" style="color:var(--primary)">https://nis2.agile.software</a></td></tr>
|
||||
<tr><td>Specifiche OpenAPI</td><td><code>GET /api/services/openapi.json</code></td></tr>
|
||||
<tr><td>Test Runner</td><td><a href="/test-runner.php?t=Nis2Test2026" style="color:var(--primary)">test-runner.php</a></td></tr>
|
||||
<tr><td>Amministratore</td><td>cristiano.benassati@gmail.com</td></tr>
|
||||
<tr><td>Documento tecnico lg231</td><td><code>docs/integration/lg231-nis2-integration.md</code></td></tr>
|
||||
<tr>
|
||||
<td><strong>mktg-agile / E-commerce</strong></td>
|
||||
<td>Documentazione API licenze + Quick Start</td>
|
||||
<td><a href="/mktg-api-doc.html" style="color:var(--primary)">mktg-api-doc.html</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>mktg-agile / E-commerce</strong></td>
|
||||
<td>Pannello web gestione licenze</td>
|
||||
<td><a href="/licenseExt.html" style="color:var(--primary)">licenseExt.html</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>mktg-agile / E-commerce</strong></td>
|
||||
<td>Postman Collection (import diretto)</td>
|
||||
<td><a href="/nis2-license-api.postman.json" download style="color:var(--primary)">nis2-license-api.postman.json</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>lg231 / Partner tecnici</strong></td>
|
||||
<td>Questa pagina — tab Guida lg231</td>
|
||||
<td><a href="/integrazioniext.html" style="color:var(--primary)">integrazioniext.html</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>lg231 (agente Claude)</strong></td>
|
||||
<td>Spec tecnica completa per implementazione</td>
|
||||
<td><code>docs/integration/lg231-nis2-integration.md</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Tutti</strong></td>
|
||||
<td>Health check (no auth)</td>
|
||||
<td><code>GET https://nis2.agile.software/api/services/status</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Tutti</strong></td>
|
||||
<td>App NIS2 Agile</td>
|
||||
<td><a href="https://nis2.agile.software" style="color:var(--primary)">https://nis2.agile.software</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user