Vedi Pwas al lavoro: 30 minuti guidati su un'applicazione già funzionante. Prenota la demo →
Confronta i prodotti Pwas nel tuo settore Prenota una demo
Pwas-One
ERPShopCRMDoc ManagerAI Agent
Pwas.FrameworkPwas.ClientPwas.OrchestratorPwas.Microservice
Pwas CLIAssessmefyDynamic Registry Builder
Soluzioni Settori Documentazione Partner Richiedi una demo Inizia ora
Italiano English
pwas.it — powered by pooel.it

Definisci lo schema.
Lascia che il motore lo esegua.

framework backend configuration-driven

Pwas.Framework trasforma la descrizione del tuo dominio in un'API completa, sicura e pronta per la produzione.

overview

Non un generatore di pannelli admin.
Un motore che interpreta il tuo dominio.

Ogni backend accumula lo stesso boilerplate: CRUD ripetuto entità per entità, permessi scritti a mano, validazioni duplicate. Pwas.Framework legge la descrizione dichiarativa del tuo dominio e la esegue a runtime: API CRUD complete, pipeline di esecuzione, autenticazione con verifica in due passaggi, automazioni su ogni operazione, tutto risolto dalla stessa fonte dichiarativa, senza ricompilare quando il dominio cambia.

AAAWgmp1bWIAAAAeanVtZGMycGEAEQAQgAAAqgA4m3EDYzJwYQAAABZcanVtYgAAAEdqdW1kYzJtYQARABCAAACqADibcQN1cm46YzJwYTphZGQwNTU4ZS02MWFkLTQxNTAtOGQ4Zi1lODllYzNjZGRhODEAAAADl2p1bWIAAAApanVtZGMyYXMAEQAQgAAAqgA4m3EDYzJwYS5hc3NlcnRpb25zAAAAALxqdW1iAAAARGp1bWRjYm9yABEAEIAAAKoAOJtxE2MycGEuaW5ncmVkaWVudC52MwAAAAAYYzJzaHDO/nU/4Qn3laER8h3Xae4AAABwY2JvcqNpZGM6Zm9ybWF0bWltYWdlL3N2Zyt4bWxqaW5zdGFuY2VJRHgseG1wOmlpZDplMjY3NTNkNy1hNTY3LTQyMWEtYmM5ZS1jOWJjNjM2OTMyMDNscmVsYXRpb25zaGlwaHBhcmVudE9mAAAB4mp1bWIAAABBanVtZGNib3IAEQAQgAAAqgA4m3ETYzJwYS5hY3Rpb25zLnYyAAAAABhjMnNo4PflulT86hbG8oG+Qfg+dQAAAZljYm9yomdhY3Rpb25zgqJmYWN0aW9ua2MycGEub3BlbmVkanBhcmFtZXRlcnOha2luZ3JlZGllbnRzgaJjdXJseC1zZWxmI2p1bWJmPWMycGEuYXNzZXJ0aW9ucy9jMnBhLmluZ3JlZGllbnQudjNkaGFzaFggG0CEToP0ebNWLkbeS1YNRfdVgP8Zcbl0piXjLmlrXeekZmFjdGlvbngdY29tLmFudGhyb3BpYy5jbGF1ZGUucHJvdmlkZWRqcGFyYW1ldGVyc6F4H2NvbS5hbnRocm9waWMub3JpZ2luLWNvbmZpZGVuY2VndW5rbm93bmtkZXNjcmlwdGlvbnhmQ2xhdWRlIHByb3ZpZGVkIHRoaXMgZmlsZSBhdCB0aGUgcmVxdWVzdCBvZiBhIHVzZXIgYW5kIG1heSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgdGhlIGZpbGUgY29udGVudHMubXNvZnR3YXJlQWdlbnShZG5hbWVmQ2xhdWRlcmFsbEFjdGlvbnNJbmNsdWRlZPUAAADIanVtYgAAAEBqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmhhc2guZGF0YQAAAAAYYzJzaA80EE0Im7sGx/E4bnTpPDYAAACAY2JvcqVjYWxnZnNoYTI1NmNwYWRNAAAAAAAAAAAAAAAAAGRoYXNoWCAoaIyj6Q4P3d7vnJ4rMseSVhx/mXTQhwEu9Q9aPJqI3mRuYW1lbmp1bWJmIG1hbmlmZXN0amV4Y2x1c2lvbnOBomVzdGFydBjgZmxlbmd0aBkeBAAAAj5qdW1iAAAAJ2p1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0udjIAAAACD2Nib3KlY2FsZ2ZzaGEyNTZpc2lnbmF0dXJleE1zZWxmI2p1bWJmPS9jMnBhL3VybjpjMnBhOmFkZDA1NThlLTYxYWQtNDE1MC04ZDhmLWU4OWVjM2NkZGE4MS9jMnBhLnNpZ25hdHVyZWppbnN0YW5jZUlEeCx4bXA6aWlkOmM2OWRjMDA1LWRkMjUtNDc3Yy1hZTlkLTJhNzk1Y2E4YmMyMXJjcmVhdGVkX2Fzc2VydGlvbnODomN1cmx4LXNlbGYjanVtYmY9YzJwYS5hc3NlcnRpb25zL2MycGEuaW5ncmVkaWVudC52M2RoYXNoWCAbQIROg/R5s1YuRt5LVg1F91WA/xlxuXSmJeMuaWtd56JjdXJseCpzZWxmI2p1bWJmPWMycGEuYXNzZXJ0aW9ucy9jMnBhLmFjdGlvbnMudjJkaGFzaFggosvtpPXAyUxVjCSmly535bKvtQZgYrbsGkiuAD3XZ5SiY3VybHgpc2VsZiNqdW1iZj1jMnBhLmFzc2VydGlvbnMvYzJwYS5oYXNoLmRhdGFkaGFzaFggBvpgBn7+PTmZ14KrVuGLNU6Zd8ecybp0k18qQa9E14x0Y2xhaW1fZ2VuZXJhdG9yX2luZm+jZG5hbWVvQW50aHJvcGljIEZpbGVzZ3ZlcnNpb25lMS4wLjBrc3BlY1ZlcnNpb25lMi40LjAAABA4anVtYgAAAChqdW1kYzJjcwARABCAAACqADibcQNjMnBhLnNpZ25hdHVyZQAAABAIY2JvctKEWQISogEmGCFZAgowggIGMIIBjaADAgECAhRA5aAK7sI50L64g/oGQgU9Z1UTADAKBggqhkjOPQQDAzBJMRcwFQYDVQQKEw5BbnRocm9waWMsIFBCQzEuMCwGA1UEAxMlQW50aHJvcGljIENvbnRlbnQgQ3JlZGVudGlhbHMgUm9vdCBDQTAeFw0yNjA4MDcxODQzNTZaFw0yODA4MDYxOTQzNTZaMEQxFzAVBgNVBAoTDkFudGhyb3BpYywgUEJDMSkwJwYDVQQDEyBBbnRocm9waWMgQ2xhdWRlIENvbnRlbnQgU2lnbmluZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJh6CmvLUBgFFNU0vUKlOVtE6djd17L5SuwX0LemFisBM3dkd/3cyjxFA3Qo5S46fX0/ihY0VZ7mfb9KF703t5OjWDBWMA4GA1UdDwEB/wQEAwIHgDAVBgNVHSUEDjAMBgorBgEEAYPoXgIBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUzlHiBIFOZFsj+OPEz5o+nMHXXMIwCgYIKoZIzj0EAwMDZwAwZAIwMXMdFJ4BetLLVY7ORuE9noqbbAZOZn/aArXyTwFAZfKrPzxF2vPoJNf1+UCdg1XGAjBwX1zd9WGqYkqmL5SFqw1QySjr1zJfpJM9+1rdDwSPLMOPOjKuiXjoU/pUUeG9RwmhY3BhZFkNngAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZYQEYYN3VH+14oQghkqWpVw3ebpnEnxrBaCK/3ZivWIh0bfYAzOwmo3QQUowjEL24wCD5DFWo6jlaKupxBJUuiTho=Pwas.Framework: from declarative configuration to a running backendConfiguration files (entities, execs, hooks, workflow) are read by the runtime engine, which interprets, validates and executes them, exposing CRUD APIs, execution pipelines, authentication and permissions, and event-driven automations over a relational database.DECLARATIVE CONFIGentities.jsonexecs.jsonhooks.jsonworkflow.jsonglobals.jsonRuntime engineINTERPRET · VALIDATE · EXECUTEno recompilesame sourceagent-readableCRUD APIevery entity, every fieldExecution pipelinesmulti-step, transactionalAuth & permissionsrole and field levelEvents & notificationshooks on every operationRelational databaseSTANDARD SQLPWAS.FRAMEWORK
Paradigma tradizionale
Requisito
Sviluppo dedicato
Backend specifico Logica specifica Interfaccia specifica
Paradigma Pwas
Intenzione
Interpretazione del dominio
Composizione dei processi
Esperienza dinamica
Conoscenza dichiarativa
funzionalità

Tutto quello che serve a un backend, dichiarato.

Dalla definizione di un'entità del tuo dominio ottieni API, permessi e validazione — senza scrivere un controller.

CRUD Engine dinamico

Definisci le entità del tuo dominio — campi, relazioni, validazione, valori calcolati, rappresentazione testuale, opzioni, campi multilingua — e ottieni API CRUD istantanee, con filtri e ordinamenti compositi.

Contenuti multilingua

Marca un campo come multilingua per attivare automaticamente una struttura di supporto dedicata, letture filtrate per lingua con fallback per campo, e aggiornamenti annidati in scrittura.

Autenticazione configurabile

Autenticazione completa — registrazione con verifica via codice monouso, login, verifica in due passaggi opzionale — con ruoli e policy configurabili.

Execution Pipelines

Catene logiche complesse configurabili, con loop, condizionali, oltre 30 funzioni integrate e chiamate verso servizi esterni.

Automazioni event-driven

Automazioni prima/dopo attorno a ogni operazione CRUD, di autenticazione e di esecuzione, collegabili a qualsiasi pipeline.

Sistema di notifiche

Invio email configurabile, con template che si attivano automaticamente su qualsiasi automazione del backend.

Configurazione globale

Variabili globali ed endpoint esterni gestiti in modo sicuro e centralizzato.

Logging delle richieste

Regole di logging configurabili e per categoria (autenticazione / dati / esecuzione), pensate per l'audit.

Descrizione leggibile da un agente

Una descrizione statica e autosufficiente di ogni entità, pipeline e automazione del progetto — pensata perché un agente AI (o uno sviluppatore nuovo) la legga al posto dell'intera codebase.

sotto il motore

Primitive, non script.

Gli elementi che rendono un piano compilato sicuro da affidare a qualcosa di autonomo — limitato, osservabile, impossibile da forzare silenziosamente.

@1 / Pipelines
Execution Pipelines

Loop, condizionali, oltre 30 funzioni integrate e chiamate esterne, composti da primitive invece che scritti a mano per ogni caso.

@2 / Async
Async Continuation

Uno step asincrono risponde subito al chiamante mentre il resto della pipeline continua, notificando il completamento a un webhook.

@3 / Governance
Execution Limits

Ogni piano compilato gira sotto limiti su step, profondità di nesting, iterazioni dei loop e dimensione delle query, più un controllo di ruolo su chi può invocarlo.

@4 / Recursion
Recursion Control

Una pipeline può essere rientrata solo se lo dichiara esplicitamente — negato di default, tracciato end-to-end perché un piano compilato non possa mai richiamarsi silenziosamente da solo.

@5 / Manifest
Agent-Readable Manifest

Una descrizione statica e autosufficiente di ogni entità, pipeline e hook del progetto — lo stesso Capability Registry che legge un agente, non documentazione da tenere sincronizzata a mano.

esempio

Da zero a un'API in produzione.

 shell — quick start
# clone ed avvio con Docker Compose
git clone <repo_url> MyNewProject
cd MyNewProject
docker-compose up -d --build

# API disponibile su
http://localhost:1180
 config/entities.json
{
  "product": {
    "fields": {
      "name": { "type": "string", "length": 255 },
      "price": { "type": "float", "nullable": true }
    }
  }
}
domande frequenti

Pwas.Framework: le domande.

Cosa significa che il backend è interpretato a runtime?
Significa che la definizione del dominio — entità, relazioni, permessi, operazioni — non viene tradotta una volta in codice compilato, ma viene letta ed eseguita dal motore mentre il sistema gira. La conseguenza pratica è che aggiungere un'entità o cambiare un permesso non richiede di riscrivere e ricompilare un pezzo di applicazione: è una modifica alla dichiarazione, che il motore applica da subito.
Quanto codice serve per una nuova entità?
Per il ciclo completo — creazione, lettura, modifica, cancellazione, ricerca con filtri, permessi per ruolo e per campo, validazione — nessuno: sono conseguenze della dichiarazione. Il codice serve per ciò che è genuinamente specifico: un'elaborazione particolare, un'integrazione con un sistema esterno che non si esprime come chiamata dichiarata, un calcolo di dominio non banale.
Come si gestiscono le logiche di business complesse?
Con le pipeline di esecuzione, che compongono passi elementari — condizioni, cicli, funzioni, chiamate esterne — in un'operazione unica, e con gli automatismi che si attivano prima e dopo ogni operazione. Quando una logica è davvero troppo specifica per essere composta, si isola in un servizio dedicato e la si richiama come risorsa dichiarata: è la scelta giusta quando il codice specializzato è la risposta corretta.
Si può usare con un database esistente?
Sì, ed è uno scenario frequente nei progetti di modernizzazione. Le entità si dichiarano sulla struttura che c'è, e il motore lavora su quella. Le limitazioni emergono quando lo schema esistente ha convenzioni molto irregolari: è una verifica da fare all'inizio, perché condiziona quanto lavoro di adattamento serve.
Che cosa succede quando arriva una nuova versione del motore?
È un aggiornamento dell'immagine del componente. Poiché la dichiarazione del vostro dominio è separata dal motore, l'aggiornamento non sovrascrive le vostre regole né richiede di rifare personalizzazioni — che è esattamente il problema delle personalizzazioni scritte sopra un prodotto tradizionale.
Come si verifica che i permessi siano applicati ovunque?
Una suite di verifica guidata dai dati itera su ogni entità dichiarata, simula i diversi ruoli e controlla che il sistema risponda come la politica prevede. Poiché è generata dalla stessa dichiarazione che governa il comportamento, non esiste un elenco separato che qualcuno possa dimenticare di aggiornare quando aggiunge un'entità.
get in touch

Pronto a
costruirci sopra.

Pwas.Framework è sviluppato da Pooel Srl. Non c'è un repository pubblico da clonare — scrivici e ti guidiamo nell'avviare un progetto.