How jfdomitor/intwenty works
Intwenty is a .NET web application framework for defining views and data in JSON, rendering lightweight applications, and performing generic entity operations without application-specific typed models. The principal flow is a user request, authorization and model lookup, view rendering or dynamic entity CRUD, and database access. Its separate identity-management domain handles accounts, MFA, organizations, products, and permissions. The README also highlights the barea.js SPA support and multiple database backends. The sampled sources support the model, controller, identity, and authentication links shown; unsampled feature wiring is left out.
Main entry points: IntwentyUserManager.cs User and permissions · ApplicationController.cs Application controller · IntwentySignInManager.cs Sign-in manager · Account Account and MFA
Components 21
Dynamic app runtime
- JSON app model
Intwenty/Model/IntwentyModel.cs - Model service
Intwenty/IntwentyModelService.cs - Application controller
Intwenty/Controllers/ApplicationController.cs - API controller
Intwenty/Controllers/APIController.cs - barea.js client
Intwenty/wwwroot/js/intwenty.js
Identity and access
- Account and MFA
Intwenty/Areas/Identity/Pages/Account - IAM management
Intwenty/Areas/Identity/Pages/IAM - Sign-in manager
Intwenty/Areas/Identity/Data/IntwentySignInManager.cs - User and permissions
Intwenty/Areas/Identity/Data/IntwentyUserManager.cs - Organization manager
Intwenty/Areas/Identity/Data/IntwentyOrganizationManager.cs - Identity user store
Intwenty/Areas/Identity/Data/IntwentyUserStore.cs
Platform services
- Localization
Intwenty/Localization - Event and DB logging
Intwenty/Services/EventService.cs
External integrations
- BankID client
Intwenty/Services/BankIDService.cs - Freja client
Intwenty/Services/FrejaClientService.cs
Other components
- User
- Configured database
- IAM database
- Identity provider
- BankID service
- Freja service
Connections 22
- User → barea.js client: uses SPA
- barea.js client → API controller: sends requests
- User → Application controller: requests view
- Application controller → User and permissions: checks access
- Application controller → Model service: resolves view
- Model service → JSON app model: reads model
- Application controller → Configured database: reads and writes entities
- API controller → Model service: uses model service
- Account and MFA → Sign-in manager: authenticates
- Account and MFA → User and permissions: manages account
- IAM management → User and permissions: manages users
- IAM management → Organization manager: manages organizations
- Sign-in manager → User and permissions: checks user
- User and permissions → Identity user store: uses store
- User and permissions → IAM database: reads and writes IAM
- Organization manager → IAM database: reads and writes IAM
- User → Localization: receives localized content
- BankID client → BankID service: calls
- Freja client → Freja service: calls
- Sign-in manager → BankID client: supports authentication
- Sign-in manager → Freja client: supports authentication
- Account and MFA → Identity provider: external login