Salta al contenuto
supastack
Sfoglia la documentazione
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /it/docs/web/admin.md (or send Accept: text/markdown).

Console di amministrazione

Ispezione della piattaforma, annunci e feature flag.

Procedura dettagliata per principianti

Prerequisiti: leggi le due guide per principianti di seguito, completa la configurazione locale del Web e apri questo monorepo alla radice nel tuo editor. Le impostazioni Web appartengono a apps/web/.env.local; Next.js non legge la radice .env. /dashboard nella modalità falsa predefinita è una demo senza database; /auth necessita di un database migrato.

Termini rapidi: uno spazio di lavoro è costituito da utenti, dati e impostazioni separati di un team. Il server è il backend affidabile; mantenere le chiavi del provider fuori dal browser e dal codice del telefono. Una migrazione è una modifica del database con versione che crea o aggiorna tabelle. Un modello AI è il motore che risponde; il catalogo dei modelli è l'elenco del server degli ID e dei prezzi dei modelli disponibili. Un fornitore è un servizio esterno come un servizio di intelligenza artificiale, posta elettronica o fatturazione. Un diritto è una concessione che consente a un'area di lavoro di utilizzare una funzionalità. Un webhook è un messaggio che un servizio invia allo URL di un altro servizio.

1. Prima di creare un account di prova locale, aggiungi il tuo indirizzo all'elenco ADMIN_EMAILS solo server e riavvia l'app.

2. Iscriviti al database dei test migrati e apri /admin; ispezionare le pagine utente e organizzazione disponibili.

3. Ciò garantisce l'amministratore della piattaforma, non la proprietà dell'area di lavoro. Se l'accesso viene negato verificare l'esatta configurazione della posta elettronica e del server; non elevare utenti arbitrari né eseguire test rispetto alla produzione.

Per il codice personalizzato, inizia con prompts/README.md in dotazione e copia il prompt più vicino: prompts/new-app-screen.md per la schermata di un'app o prompts/new-landing-page.md per una pagina pubblica. Per il lavoro su server, database o provider, assegna al tuo agente di codifica il compito di questa guida e chiedigli di leggere AGENTS.md, .ai/PROJECT_CONTEXT.md e i mirror .ai/ corrispondenti; controllare gli esatti file sorgente nominati qui; elencare file e controlli prima della modifica; preservare la proprietà dello spazio di lavoro e i segreti solo del server; e mostrarti la differenza. Indicagli il comportamento desiderato, i campi di input e output, i ruoli consentiti, i successi e gli errori previsti e l'account, il fornitore o il dispositivo di prova. Utilizzare valori campione; non incollare mai un vero segreto.

Crea il confine amministrativo

ADMIN_EMAILS è un elenco di bootstrap separato da virgole solo per server. Gli utenti elencati ricevono il ruolo di amministratore della piattaforma al momento dell'iscrizione. Senza di esso, concedere l'accesso tramite un percorso database/amministratore autorizzato; non rendere amministratore il primo visitatore arbitrario.

L'amministratore della piattaforma è distinto dal proprietario/amministratore dell'area di lavoro. /admin e le relative pagine utente, organizzazione, bandiera, annuncio e lista d'attesa controllano il ruolo della piattaforma.

Utilizzare i controlli implementati

Il motore Better Auth predefinito fornisce la gestione degli utenti amministratori, i divieti e la rappresentazione. L'app compone visualizzazioni della piattaforma con audit trail. Limita la rappresentazione all'accesso amministrativo verificato, rendi visibile il suo stato e ripristina la sessione amministrativa originale all'uscita.

Auth.js non eredita automaticamente i plugin di amministrazione Better Auth. Esaminare admin.ts, admin-actions.ts e il comportamento del provider di autenticazione prima di cambiare motore.

Verificare le azioni privilegiate

Testa il rifiuto da parte di utenti non amministrativi, l'accesso amministrativo, le sessioni degli utenti esclusi, l'avvio/arresto della rappresentazione e le azioni che abiliti. Mantieni tutti i percorsi amministrativi fuori dall'indicizzazione pubblica.

Installazione e configurazione

La superficie /admin è la vista di ispezione dell'operatore su workspace, membri e stato del prodotto. ADMIN_EMAILS (o la configurazione del plugin admin nel prodotto consumatore) decide chi ci arriva; ogni route admin ricontrolla l'autorizzazione sul server.

I feature flag (feature-flag-runtime.ts) disabilitano di default tutto ciò che non è configurato — un flag mancante non può mai abilitare silenziosamente una superficie — e gli override per flag vivono nella tabella featureFlagOverride.

/admin                    operator dashboard
announcement-actions.ts   broadcast in-app notices
resolveFeatureFlags(...)  bulk flag resolution for a caller context

Flusso di implementazione

Usa le azioni admin per ispezione e operazioni di supporto (ricerca workspace, gestione membri, broadcast di annunci). Mantieni le mutazioni auditate e l'autorizzazione controllata al confine dell'azione, non nella nav.

Rilascia le funzionalità dietro flag: shippa il codice in dark, abilitalo per workspace o globalmente, e rimuovi il flag quando la superficie è permanente. L'impersonation di piattaforma resta congelata a meno che il PRODUCT.md del prodotto la autorizzi esplicitamente.

Verifica e risoluzione dei problemi

Verifica che un non-admin sia negato, che un flag disabilitato nasconda la sua superficie end-to-end (nav, route, azione), che un override si risolva solo per il suo target e che gli annunci raggiungano il pubblico previsto. I test admin dovrebbero coprire prima il percorso negato.

Domande frequenti

14 domande

Cos'è supastack?

supastack è una base modulare per costruire prodotti SaaS con AI. Riunisce l'infrastruttura comune così puoi concentrarti sulle funzionalità proprie del tuo prodotto.

Supporta web e mobile?

Sì. supastack include app Next.js ed Expo come punti di partenza per esperienze web e mobile.

Quale autenticazione è inclusa?

Better Auth copre email/password, OTP e login social. I workspace personali vengono provisionati con l'account così i record restano delimitati fin dal primo giorno.

Come è supportata l'AI?

supastack include AI multi-provider configurabile, tracciamento dell'uso, budget e supporto cifrato per le proprie chiavi (BYOK).

Come vengono gestiti gli abbonamenti?

Per i prodotti costruiti sul kit, fatturazione Stripe, abbonamenti e permessi formano la base dell'accesso a pagamento. I segreti dei provider restano lato server.

Dove vive il codice specifico del mio prodotto?

Le funzionalità specifiche del prodotto restano in un codebase separato, mentre il prodotto configura e integra i moduli base di supastack.

Come funziona il prezzo di supastack?

Il kit è un acquisto unico con aggiornamenti a vita: Un framework a 249 $ (prezzo di lancio temporaneo — 100 $ di sconto sul prezzo di listino di 349 $) oppure Tutti i framework (Next.js, iOS, Android) a 499 $ (prezzo di lancio temporaneo — 100 $ di sconto sul prezzo di listino di 599 $), più 75 $ per posto sviluppatore aggiuntivo. Nessun abbonamento al kit. Il checkout su questo sito consegna la tua chiave di licenza via email, con accesso al repo tramite invito GitHub.

Come delimitano i workspace i miei dati?

I record utente sono delimitati da workspaceId. Identità, permessi, uso AI, eventi di fatturazione e voci di audit restano dentro il confine del workspace personale.

Come funzionano i job in background?

Trigger.dev è il runtime di job esplicito. Il contratto JobRunner promette solo enqueue, status e cancel — la semantica di workflow resta specifica ed esplicita di Trigger.dev.

In cosa differisce l'email dall'outreach?

L'email transazionale copre i flussi di prodotto come gli avvisi di completamento delle attività. L'outreach a freddo e le campagne appartengono al prodotto, fuori dal modulo email di questo kit.

Come funzionano gli acquisti su mobile?

La versione mobile include acquisti nativi e ripristino tramite RevenueCat, con accesso verificato dal server. Configura gli account degli store e completa i test sui dispositivi prima della pubblicazione. I pagamenti web restano separati.

Dove risiedono le chiavi dei provider AI?

Le credenziali BYOK sono cifrate e restano lato server. Le chiavi vengono sanificate nei log; uso e budget restano visibili a livello di workspace.

Quali metodi di pagamento accetta il checkout?

Il checkout ospitato da Stripe accetta le carte e può offrire anche Alipay e WeChat Pay una volta attivati i wallet sull'account Stripe — utile per gli acquirenti in Cina. Le autorizzazioni dei wallet vengono confermate in modo asincrono, quindi la pagina della licenza si aggiorna non appena il pagamento va a buon fine.

Posso ottenere un rimborso?

Una volta ottenuto l'accesso al repository, supastack è tuo per sempre, quindi non può essere rimborsato. Ma non preoccuparti: ricevi il codice sorgente completo con aggiornamenti a vita per creare e lanciare prodotti illimitati per te o per i tuoi clienti. L'unica condizione è che non puoi rivendere il codice né ridistribuire il repository come starter kit o modello.

IT
Tema