emilsoftware-utilities 2.0.0-dev.7 → 2.0.0-dev.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +278 -38
- package/dist/ContractGenerator.d.ts +4 -3
- package/dist/ContractGenerator.js +15 -5
- package/dist/ContractGenerator.js.map +1 -1
- package/dist/DailyFileTransport.d.ts +21 -0
- package/dist/DailyFileTransport.js +74 -0
- package/dist/DailyFileTransport.js.map +1 -0
- package/dist/DatabaseUpdater.js +32 -29
- package/dist/DatabaseUpdater.js.map +1 -1
- package/dist/EmilsoftwareModule.d.ts +15 -1
- package/dist/EmilsoftwareModule.js +1 -1
- package/dist/EmilsoftwareModule.js.map +1 -1
- package/dist/ExecutionTimeLogger.d.ts +2 -2
- package/dist/ExecutionTimeLogger.js +5 -4
- package/dist/ExecutionTimeLogger.js.map +1 -1
- package/dist/Logger.d.ts +22 -11
- package/dist/Logger.js +132 -119
- package/dist/Logger.js.map +1 -1
- package/dist/Orm.d.ts +32 -6
- package/dist/Orm.js +148 -38
- package/dist/Orm.js.map +1 -1
- package/dist/RoutesLoggerMiddleware.js.map +1 -1
- package/dist/Utilities.d.ts +18 -8
- package/dist/Utilities.js +143 -37
- package/dist/Utilities.js.map +1 -1
- package/dist/accessi/client/index.d.ts +50 -0
- package/dist/accessi/client/index.js +112 -0
- package/dist/accessi/client/index.js.map +1 -0
- package/dist/accessi/console/index.d.ts +15 -0
- package/dist/accessi/console/index.js +25 -0
- package/dist/accessi/console/index.js.map +1 -0
- package/dist/accessi/contracts/dtos.d.ts +8 -0
- package/dist/accessi/contracts/dtos.js +25 -0
- package/dist/accessi/contracts/dtos.js.map +1 -0
- package/dist/accessi/contracts/index.d.ts +25 -0
- package/dist/accessi/contracts/index.js +28 -0
- package/dist/accessi/contracts/index.js.map +1 -0
- package/dist/accessi/openapi/index.d.ts +2 -0
- package/dist/accessi/openapi/index.js +19 -0
- package/dist/accessi/openapi/index.js.map +1 -0
- package/dist/accessi/resource-server/core.d.ts +6 -0
- package/dist/accessi/resource-server/core.js +23 -0
- package/dist/accessi/resource-server/core.js.map +1 -0
- package/dist/accessi/resource-server/errors.d.ts +10 -0
- package/dist/accessi/resource-server/errors.js +19 -0
- package/dist/accessi/resource-server/errors.js.map +1 -0
- package/dist/accessi/resource-server/express.d.ts +17 -0
- package/dist/accessi/resource-server/express.js +87 -0
- package/dist/accessi/resource-server/express.js.map +1 -0
- package/dist/accessi/resource-server/index.d.ts +3 -0
- package/dist/accessi/resource-server/index.js +20 -0
- package/dist/accessi/resource-server/index.js.map +1 -0
- package/dist/accessi/resource-server/introspection.d.ts +16 -0
- package/dist/accessi/resource-server/introspection.js +115 -0
- package/dist/accessi/resource-server/introspection.js.map +1 -0
- package/dist/accessi/resource-server/keys.d.ts +11 -0
- package/dist/accessi/resource-server/keys.js +22 -0
- package/dist/accessi/resource-server/keys.js.map +1 -0
- package/dist/accessi/resource-server/nest.d.ts +9 -0
- package/dist/accessi/resource-server/nest.js +75 -0
- package/dist/accessi/resource-server/nest.js.map +1 -0
- package/dist/accessi/resource-server/runtime.d.ts +27 -0
- package/dist/accessi/resource-server/runtime.js +179 -0
- package/dist/accessi/resource-server/runtime.js.map +1 -0
- package/dist/accessi/resource-server/token.d.ts +23 -0
- package/dist/accessi/resource-server/token.js +230 -0
- package/dist/accessi/resource-server/token.js.map +1 -0
- package/dist/accessi/resource-server/types.d.ts +92 -0
- package/dist/accessi/resource-server/types.js +3 -0
- package/dist/accessi/resource-server/types.js.map +1 -0
- package/dist/accessi/server/index.d.ts +11 -0
- package/dist/accessi/server/index.js +30 -0
- package/dist/accessi/server/index.js.map +1 -0
- package/dist/accessi/server/standalone.d.ts +41 -0
- package/dist/accessi/server/standalone.js +265 -0
- package/dist/accessi/server/standalone.js.map +1 -0
- package/dist/accessi/ui/index.d.ts +13 -0
- package/dist/accessi/ui/index.js +19 -0
- package/dist/accessi/ui/index.js.map +1 -0
- package/dist/accessi-module/AccessiModule.d.ts +199 -0
- package/dist/accessi-module/AccessiModule.js +43 -5
- package/dist/accessi-module/AccessiModule.js.map +1 -1
- package/dist/accessi-module/Console/accessiFetch.d.ts +52 -0
- package/dist/accessi-module/Console/accessiFetch.js +140 -0
- package/dist/accessi-module/Console/accessiFetch.js.map +1 -0
- package/dist/accessi-module/Console/console.css +774 -0
- package/dist/accessi-module/Console/console.d.ts +1 -0
- package/dist/accessi-module/Console/console.js +4102 -0
- package/dist/accessi-module/Console/console.js.map +1 -0
- package/dist/accessi-module/Console/generated/emilsoftware-utilities.d.ts +761 -0
- package/dist/accessi-module/Console/generated/emilsoftware-utilities.js +712 -0
- package/dist/accessi-module/Console/generated/emilsoftware-utilities.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.d.ts +39 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js +3 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js +17 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/actionResponse.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/actionResponse.js +9 -0
- package/dist/accessi-module/Console/generated/model/actionResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js +9 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.d.ts +11 -0
- package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.d.ts +19 -0
- package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.d.ts +17 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js +9 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js +9 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.d.ts +23 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js +15 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.d.ts +22 -0
- package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createMenuRequest.d.ts +52 -0
- package/dist/accessi-module/Console/generated/model/createMenuRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createScopeRequest.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/createScopeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createScopeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/errorResponse.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/errorResponse.js +9 -0
- package/dist/accessi-module/Console/generated/model/errorResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.d.ts +23 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/filtriUtente.d.ts +32 -0
- package/dist/accessi-module/Console/generated/model/filtriUtente.js +9 -0
- package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getFiltriResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getFiltriResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getMenusParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getMenusParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getMenusParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getMenusResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getMenusResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getRolesResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getRolesResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getSchemaResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getSchemaResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getSchemaResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getScopesResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getScopesResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getScopesResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersParams.d.ts +32 -0
- package/dist/accessi-module/Console/generated/model/getUsersParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getUsersResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersResult.d.ts +17 -0
- package/dist/accessi-module/Console/generated/model/getUsersResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.d.ts +19 -0
- package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js +3 -0
- package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/index.d.ts +130 -0
- package/dist/accessi-module/Console/generated/model/index.js +147 -0
- package/dist/accessi-module/Console/generated/model/index.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.d.ts +30 -0
- package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginAsRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/loginAsRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/loginAsRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginAsResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/loginAsResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/loginAsResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginAsResult.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/loginAsResult.js +9 -0
- package/dist/accessi-module/Console/generated/model/loginAsResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginRequest.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/loginRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/loginRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/loginResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/loginResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResult.d.ts +34 -0
- package/dist/accessi-module/Console/generated/model/loginResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/loginResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js +9 -0
- package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js +14 -0
- package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/menuEntity.d.ts +32 -0
- package/dist/accessi-module/Console/generated/model/menuEntity.js +9 -0
- package/dist/accessi-module/Console/generated/model/menuEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/menuTypeEntity.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/menuTypeEntity.js +9 -0
- package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js +9 -0
- package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/permission.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/permission.js +9 -0
- package/dist/accessi-module/Console/generated/model/permission.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequest.d.ts +51 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResult.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/registerRequest.d.ts +62 -0
- package/dist/accessi-module/Console/generated/model/registerRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/registerRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/registerResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/registerResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/registerResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/revokeTokenRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/revokeTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/revokeTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/role.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/role.js +3 -0
- package/dist/accessi-module/Console/generated/model/role.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenu.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenu.js +3 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js +17 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlResult.d.ts +20 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlSection.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlSection.js +9 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlSection.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/scopeEntity.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/scopeEntity.js +9 -0
- package/dist/accessi-module/Console/generated/model/scopeEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/serviceTokenDto.d.ts +28 -0
- package/dist/accessi-module/Console/generated/model/serviceTokenDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +19 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/status.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/status.js +9 -0
- package/dist/accessi-module/Console/generated/model/status.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltro.d.ts +23 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltro.js +3 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js +15 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tokenResult.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/tokenResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/tokenResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tokenResultType.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/tokenResultType.js +15 -0
- package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js +14 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +14 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.d.ts +11 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.d.ts +21 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js +15 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.d.ts +17 -0
- package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateMenuRequest.d.ts +47 -0
- package/dist/accessi-module/Console/generated/model/updateMenuRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateScopeRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/updateScopeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateScopeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userDto.d.ts +88 -0
- package/dist/accessi-module/Console/generated/model/userDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/userDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js +19 -0
- package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userGrantsDto.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/userGrantsDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userGrantsResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/userGrantsResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.d.ts +20 -0
- package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +1 -0
- package/dist/accessi-module/Console/help.d.ts +13 -0
- package/dist/accessi-module/Console/help.js +417 -0
- package/dist/accessi-module/Console/help.js.map +1 -0
- package/dist/accessi-module/Console/index.html +141 -0
- package/dist/accessi-module/Console/wiki.d.ts +52 -0
- package/dist/accessi-module/Console/wiki.js +855 -0
- package/dist/accessi-module/Console/wiki.js.map +1 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.d.ts +23 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.js +134 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -0
- package/dist/accessi-module/Controllers/AccessiIntrospectionController.d.ts +17 -0
- package/dist/accessi-module/Controllers/AccessiIntrospectionController.js +93 -0
- package/dist/accessi-module/Controllers/AccessiIntrospectionController.js.map +1 -0
- package/dist/accessi-module/Controllers/AuthController.d.ts +16 -6
- package/dist/accessi-module/Controllers/AuthController.js +333 -85
- package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
- package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -5
- package/dist/accessi-module/Controllers/ConfiguratorController.js +26 -44
- package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
- package/dist/accessi-module/Controllers/ConsoleEntryController.d.ts +16 -0
- package/dist/accessi-module/Controllers/ConsoleEntryController.js +136 -0
- package/dist/accessi-module/Controllers/ConsoleEntryController.js.map +1 -0
- package/dist/accessi-module/Controllers/EmailController.d.ts +4 -6
- package/dist/accessi-module/Controllers/EmailController.js +13 -15
- package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
- package/dist/accessi-module/Controllers/FiltriController.d.ts +12 -4
- package/dist/accessi-module/Controllers/FiltriController.js +153 -6
- package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
- package/dist/accessi-module/Controllers/PermissionController.d.ts +31 -5
- package/dist/accessi-module/Controllers/PermissionController.js +559 -66
- package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
- package/dist/accessi-module/Controllers/SchemaController.d.ts +9 -0
- package/dist/accessi-module/Controllers/SchemaController.js +79 -0
- package/dist/accessi-module/Controllers/SchemaController.js.map +1 -0
- package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +23 -0
- package/dist/accessi-module/Controllers/ServiceTokenController.js +176 -0
- package/dist/accessi-module/Controllers/ServiceTokenController.js.map +1 -0
- package/dist/accessi-module/Controllers/UserController.d.ts +22 -5
- package/dist/accessi-module/Controllers/UserController.js +385 -33
- package/dist/accessi-module/Controllers/UserController.js.map +1 -1
- package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
- package/dist/accessi-module/Dtos/AbilitazioneMenu.js +16 -8
- package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
- package/dist/accessi-module/Dtos/AdminBootstrapDtos.d.ts +26 -0
- package/dist/accessi-module/Dtos/AdminBootstrapDtos.js +100 -0
- package/dist/accessi-module/Dtos/AdminBootstrapDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js +0 -1
- package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +1 -2
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.d.ts +13 -0
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js +70 -0
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -0
- package/dist/accessi-module/Dtos/BaseResponse.d.ts +22 -0
- package/dist/accessi-module/Dtos/BaseResponse.js +106 -1
- package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/CatalogDtos.d.ts +64 -0
- package/dist/accessi-module/Dtos/CatalogDtos.js +322 -0
- package/dist/accessi-module/Dtos/CatalogDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.d.ts +3 -0
- package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js +31 -0
- package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/ConsoleEntryDtos.d.ts +24 -0
- package/dist/accessi-module/Dtos/ConsoleEntryDtos.js +77 -0
- package/dist/accessi-module/Dtos/ConsoleEntryDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/FederatedExchangeDtos.d.ts +21 -0
- package/dist/accessi-module/Dtos/FederatedExchangeDtos.js +74 -0
- package/dist/accessi-module/Dtos/FederatedExchangeDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/FederatedIdentityDtos.d.ts +69 -0
- package/dist/accessi-module/Dtos/FederatedIdentityDtos.js +236 -0
- package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/FiltriUtente.js +5 -1
- package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
- package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetMenusResponse.js +1 -1
- package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetUserByTokenRequest.d.ts +3 -0
- package/dist/accessi-module/Dtos/GetUserByTokenRequest.js +26 -0
- package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/GetUserByTokenResponse.d.ts +5 -0
- package/dist/accessi-module/Dtos/GetUserByTokenResponse.js +27 -0
- package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +1 -0
- package/dist/accessi-module/Dtos/GetUsersResponse.d.ts +1 -1
- package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/IntrospectionDtos.d.ts +16 -0
- package/dist/accessi-module/Dtos/IntrospectionDtos.js +59 -0
- package/dist/accessi-module/Dtos/IntrospectionDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/LoginAsDtos.d.ts +15 -0
- package/dist/accessi-module/Dtos/LoginAsDtos.js +68 -0
- package/dist/accessi-module/Dtos/LoginAsDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/LoginRequest.d.ts +3 -1
- package/dist/accessi-module/Dtos/LoginRequest.js +13 -2
- package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/LoginResponse.d.ts +7 -2
- package/dist/accessi-module/Dtos/LoginResponse.js +26 -7
- package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/MenuItem.js +1 -0
- package/dist/accessi-module/Dtos/Permission.d.ts +1 -0
- package/dist/accessi-module/Dtos/Permission.js +1 -0
- package/dist/accessi-module/Dtos/Permission.js.map +1 -1
- package/dist/accessi-module/Dtos/PublicRegisterRequest.d.ts +5 -0
- package/dist/accessi-module/Dtos/PublicRegisterRequest.js +15 -0
- package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/RefreshTokenDtos.d.ts +12 -0
- package/dist/accessi-module/Dtos/RefreshTokenDtos.js +50 -0
- package/dist/accessi-module/Dtos/RefreshTokenDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/RegisterRequest.d.ts +2 -4
- package/dist/accessi-module/Dtos/RegisterRequest.js +17 -27
- package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/RegisterResponse.d.ts +1 -1
- package/dist/accessi-module/Dtos/RegisterResponse.js +3 -3
- package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/RevokeTokenRequest.d.ts +3 -0
- package/dist/accessi-module/Dtos/RevokeTokenRequest.js +27 -0
- package/dist/accessi-module/Dtos/RevokeTokenRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/Role.d.ts +4 -0
- package/dist/accessi-module/Dtos/Role.js +4 -0
- package/dist/accessi-module/Dtos/Role.js.map +1 -1
- package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
- package/dist/accessi-module/Dtos/SchemaDtos.d.ts +19 -0
- package/dist/accessi-module/Dtos/SchemaDtos.js +84 -0
- package/dist/accessi-module/Dtos/SchemaDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/ScopeDtos.d.ts +28 -0
- package/dist/accessi-module/Dtos/ScopeDtos.js +103 -0
- package/dist/accessi-module/Dtos/ScopeDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.d.ts +4 -0
- package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js +36 -0
- package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/ServiceToken.d.ts +34 -0
- package/dist/accessi-module/Dtos/ServiceToken.js +128 -0
- package/dist/accessi-module/Dtos/ServiceToken.js.map +1 -0
- package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
- package/dist/accessi-module/Dtos/SetUserPasswordRequest.d.ts +4 -0
- package/dist/accessi-module/Dtos/SetUserPasswordRequest.js +32 -0
- package/dist/accessi-module/Dtos/SetUserPasswordRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
- package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +4 -0
- package/dist/accessi-module/Dtos/TipoAbilitazione.js +4 -0
- package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
- package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
- package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
- package/dist/accessi-module/Dtos/TwoFactorDtos.d.ts +14 -0
- package/dist/accessi-module/Dtos/TwoFactorDtos.js +71 -0
- package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/UserDto.d.ts +9 -4
- package/dist/accessi-module/Dtos/UserDto.js +37 -22
- package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
- package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
- package/dist/accessi-module/Dtos/UserGrantsResponse.d.ts +5 -0
- package/dist/accessi-module/Dtos/UserGrantsResponse.js +27 -0
- package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +1 -0
- package/dist/accessi-module/Dtos/index.d.ts +19 -0
- package/dist/accessi-module/Dtos/index.js +19 -0
- package/dist/accessi-module/Dtos/index.js.map +1 -1
- package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.d.ts +33 -0
- package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js +106 -0
- package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js.map +1 -0
- package/dist/accessi-module/Services/AuthService/AuthService.d.ts +108 -5
- package/dist/accessi-module/Services/AuthService/AuthService.js +452 -54
- package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.d.ts +3 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js +5 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
- package/dist/accessi-module/Services/EmailService/EmailService.d.ts +9 -2
- package/dist/accessi-module/Services/EmailService/EmailService.js +47 -22
- package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
- package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +18 -3
- package/dist/accessi-module/Services/FiltriService/FiltriService.js +92 -16
- package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
- package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +107 -5
- package/dist/accessi-module/Services/PermissionService/PermissionService.js +788 -215
- package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
- package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.d.ts +36 -0
- package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js +125 -0
- package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js.map +1 -0
- package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.d.ts +75 -0
- package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js +265 -0
- package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +1 -0
- package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +27 -0
- package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +175 -0
- package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +1 -0
- package/dist/accessi-module/Services/UserService/UserService.d.ts +73 -5
- package/dist/accessi-module/Services/UserService/UserService.js +578 -337
- package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
- package/dist/accessi-module/Views/reset-password.html +229 -213
- package/dist/accessi-module/accessiRuntime.d.ts +45 -0
- package/dist/accessi-module/accessiRuntime.js +39 -0
- package/dist/accessi-module/accessiRuntime.js.map +1 -0
- package/dist/accessi-module/database-updates/AccessiCatalogMigrator.d.ts +83 -0
- package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js +360 -0
- package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js.map +1 -0
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.d.ts +58 -10
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +508 -179
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
- package/dist/accessi-module/database-updates/accessiOptionsFromEnv.d.ts +5 -0
- package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js +78 -0
- package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js.map +1 -0
- package/dist/accessi-module/database-updates/accessiSchema.d.ts +67 -0
- package/dist/accessi-module/database-updates/accessiSchema.js +135 -0
- package/dist/accessi-module/database-updates/accessiSchema.js.map +1 -0
- package/dist/accessi-module/database-updates/menuScopeSeed.d.ts +15 -0
- package/dist/accessi-module/database-updates/menuScopeSeed.js +386 -0
- package/dist/accessi-module/database-updates/menuScopeSeed.js.map +1 -0
- package/dist/accessi-module/database-updates/menuScopeSeeder.d.ts +8 -0
- package/dist/accessi-module/database-updates/menuScopeSeeder.js +131 -0
- package/dist/accessi-module/database-updates/menuScopeSeeder.js.map +1 -0
- package/dist/accessi-module/database-updates/optionalColumns.d.ts +7 -0
- package/dist/accessi-module/database-updates/optionalColumns.js +58 -0
- package/dist/accessi-module/database-updates/optionalColumns.js.map +1 -0
- package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.d.ts +1 -0
- package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js +69 -0
- package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js.map +1 -0
- package/dist/accessi-module/database-updates/runAccessiDbUpdate.js +18 -53
- package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
- package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +33 -0
- package/dist/accessi-module/federated-auth/FederatedAuthController.js +373 -0
- package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -0
- package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.d.ts +15 -0
- package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js +85 -0
- package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js.map +1 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +102 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.js +472 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +1 -0
- package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +53 -0
- package/dist/accessi-module/federated-auth/FederatedAuthTypes.js +3 -0
- package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +1 -0
- package/dist/accessi-module/index.d.ts +61 -1
- package/dist/accessi-module/index.js +168 -22
- package/dist/accessi-module/index.js.map +1 -1
- package/dist/accessi-module/jwt/jwt.strategy.d.ts +1 -1
- package/dist/accessi-module/jwt/jwt.strategy.js +21 -8
- package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
- package/dist/accessi-module/middleware/accessiRequirements.d.ts +23 -1
- package/dist/accessi-module/middleware/accessiRequirements.js +7 -0
- package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
- package/dist/accessi-module/middleware/authenticateGen.d.ts +16 -1
- package/dist/accessi-module/middleware/authenticateGen.js +68 -26
- package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
- package/dist/accessi-module/security/AccessiHttpExceptionFilter.d.ts +12 -0
- package/dist/accessi-module/security/AccessiHttpExceptionFilter.js +77 -0
- package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +1 -0
- package/dist/accessi-module/security/accessControl.d.ts +48 -2
- package/dist/accessi-module/security/accessControl.js +84 -8
- package/dist/accessi-module/security/accessControl.js.map +1 -1
- package/dist/accessi-module/security/accessTokenRevocation.d.ts +47 -0
- package/dist/accessi-module/security/accessTokenRevocation.js +146 -0
- package/dist/accessi-module/security/accessTokenRevocation.js.map +1 -0
- package/dist/accessi-module/security/accessiValidation.d.ts +9 -0
- package/dist/accessi-module/security/accessiValidation.js +41 -0
- package/dist/accessi-module/security/accessiValidation.js.map +1 -0
- package/dist/accessi-module/security/adminBootstrap.d.ts +8 -0
- package/dist/accessi-module/security/adminBootstrap.js +41 -0
- package/dist/accessi-module/security/adminBootstrap.js.map +1 -0
- package/dist/accessi-module/security/audit.d.ts +7 -0
- package/dist/accessi-module/security/audit.js +14 -0
- package/dist/accessi-module/security/audit.js.map +1 -0
- package/dist/accessi-module/security/authenticatedToken.d.ts +23 -3
- package/dist/accessi-module/security/authenticatedToken.js +45 -5
- package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
- package/dist/accessi-module/security/consoleEntry.d.ts +63 -0
- package/dist/accessi-module/security/consoleEntry.js +200 -0
- package/dist/accessi-module/security/consoleEntry.js.map +1 -0
- package/dist/accessi-module/security/edgeRateLimit.d.ts +33 -0
- package/dist/accessi-module/security/edgeRateLimit.js +81 -0
- package/dist/accessi-module/security/edgeRateLimit.js.map +1 -0
- package/dist/accessi-module/security/emailConfiguration.d.ts +20 -0
- package/dist/accessi-module/security/emailConfiguration.js +41 -0
- package/dist/accessi-module/security/emailConfiguration.js.map +1 -0
- package/dist/accessi-module/security/jwks.d.ts +33 -0
- package/dist/accessi-module/security/jwks.js +83 -0
- package/dist/accessi-module/security/jwks.js.map +1 -0
- package/dist/accessi-module/security/jwksBootstrap.d.ts +15 -0
- package/dist/accessi-module/security/jwksBootstrap.js +44 -0
- package/dist/accessi-module/security/jwksBootstrap.js.map +1 -0
- package/dist/accessi-module/security/jwtTokenOptions.d.ts +22 -0
- package/dist/accessi-module/security/jwtTokenOptions.js +58 -0
- package/dist/accessi-module/security/jwtTokenOptions.js.map +1 -0
- package/dist/accessi-module/security/loginAs.d.ts +8 -0
- package/dist/accessi-module/security/loginAs.js +45 -0
- package/dist/accessi-module/security/loginAs.js.map +1 -0
- package/dist/accessi-module/security/passwordPolicy.d.ts +21 -0
- package/dist/accessi-module/security/passwordPolicy.js +71 -0
- package/dist/accessi-module/security/passwordPolicy.js.map +1 -0
- package/dist/accessi-module/security/passwordResetToken.d.ts +13 -3
- package/dist/accessi-module/security/passwordResetToken.js +13 -5
- package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
- package/dist/accessi-module/security/publicAuthRateLimit.d.ts +10 -8
- package/dist/accessi-module/security/publicAuthRateLimit.js +61 -60
- package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
- package/dist/accessi-module/security/rateLimitStore.d.ts +34 -0
- package/dist/accessi-module/security/rateLimitStore.js +145 -0
- package/dist/accessi-module/security/rateLimitStore.js.map +1 -0
- package/dist/accessi-module/security/refreshTokenRotation.d.ts +80 -0
- package/dist/accessi-module/security/refreshTokenRotation.js +204 -0
- package/dist/accessi-module/security/refreshTokenRotation.js.map +1 -0
- package/dist/accessi-module/security/serviceTokenGuard.d.ts +27 -0
- package/dist/accessi-module/security/serviceTokenGuard.js +90 -0
- package/dist/accessi-module/security/serviceTokenGuard.js.map +1 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.d.ts +9 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.js +53 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.js.map +1 -0
- package/dist/accessi-module/security/sessionRevocation.d.ts +67 -0
- package/dist/accessi-module/security/sessionRevocation.js +170 -0
- package/dist/accessi-module/security/sessionRevocation.js.map +1 -0
- package/dist/accessi-module/security/validateOptions.d.ts +19 -0
- package/dist/accessi-module/security/validateOptions.js +115 -0
- package/dist/accessi-module/security/validateOptions.js.map +1 -0
- package/dist/accessi-module/startupLog.d.ts +7 -0
- package/dist/accessi-module/startupLog.js +29 -0
- package/dist/accessi-module/startupLog.js.map +1 -0
- package/dist/allegati-module/AllegatiModule.d.ts +11 -0
- package/dist/allegati-module/AllegatiModule.js +11 -1
- package/dist/allegati-module/AllegatiModule.js.map +1 -1
- package/dist/allegati-module/Controllers/AllegatiController.d.ts +2 -1
- package/dist/allegati-module/Controllers/AllegatiController.js +23 -15
- package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
- package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
- package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
- package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
- package/dist/allegati-module/Dtos/index.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +10 -3
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +150 -101
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
- package/dist/allegati-module/index.js +2 -2
- package/dist/allegati-module/index.js.map +1 -1
- package/dist/allegati-module/security/allegatiAuthorizationGuard.d.ts +14 -0
- package/dist/allegati-module/security/allegatiAuthorizationGuard.js +70 -0
- package/dist/allegati-module/security/allegatiAuthorizationGuard.js.map +1 -0
- package/dist/angular-components/aree-disponibili/aree-disponibili.js +1336 -0
- package/dist/angular-components/aree-disponibili/demo.html +232 -0
- package/dist/autobind.d.ts +10 -3
- package/dist/autobind.js +24 -9
- package/dist/autobind.js.map +1 -1
- package/dist/emilsoftware-utilities-2.0.0-dev.71.tgz +0 -0
- package/dist/firebird-compat.d.ts +41 -0
- package/dist/firebird-compat.js +54 -3
- package/dist/firebird-compat.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/initEmilsoftwareModule.d.ts +11 -1
- package/dist/initEmilsoftwareModule.js +64 -14
- package/dist/initEmilsoftwareModule.js.map +1 -1
- package/dist/openapi/OpenApiConfig.d.ts +68 -0
- package/dist/openapi/OpenApiConfig.js +157 -0
- package/dist/openapi/OpenApiConfig.js.map +1 -0
- package/dist/openapi/OpenApiMerge.d.ts +15 -0
- package/dist/openapi/OpenApiMerge.js +119 -0
- package/dist/openapi/OpenApiMerge.js.map +1 -0
- package/dist/scripts/generateAccessiOpenApi.d.ts +1 -0
- package/dist/scripts/generateAccessiOpenApi.js +57 -0
- package/dist/scripts/generateAccessiOpenApi.js.map +1 -0
- package/dist/scripts/generateAccessiWiki.d.ts +1 -0
- package/dist/scripts/generateAccessiWiki.js +131 -0
- package/dist/scripts/generateAccessiWiki.js.map +1 -0
- package/dist/scripts/startAccessiService.d.ts +1 -0
- package/dist/scripts/startAccessiService.js +11 -0
- package/dist/scripts/startAccessiService.js.map +1 -0
- package/docs/accessi-openapi-fingerprint.json +192 -0
- package/docs/gateway-rate-limit.md +98 -0
- package/docs/standalone-service.md +176 -0
- package/integration-prompt.md +772 -0
- package/package.json +199 -82
- package/dist/swagger/SwaggerConfig.d.ts +0 -2
- package/dist/swagger/SwaggerConfig.js +0 -26
- package/dist/swagger/SwaggerConfig.js.map +0 -1
|
@@ -0,0 +1,772 @@
|
|
|
1
|
+
# Integration prompt — Accessi (`emilsoftware-utilities`)
|
|
2
|
+
|
|
3
|
+
Questo documento e il contesto unico da passare a un agente AI o a uno sviluppatore che deve integrare Accessi in un backend, in un frontend o in un altro servizio.
|
|
4
|
+
|
|
5
|
+
L'obiettivo e evitare l'errore piu comune: **montare `AccessiModule` ovunque**. Accessi e un servizio di identita; gli altri backend sono resource server.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Architettura da seguire
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
Frontend A ─┐
|
|
13
|
+
Frontend B ─┼──> Accessi Service (DB, SMTP, utenti, ruoli, console, SSO, 2FA)
|
|
14
|
+
│ ▲
|
|
15
|
+
Backend A ──┼─────────┤ introspection / service token
|
|
16
|
+
Backend B ──┘ │
|
|
17
|
+
└──> Accessi DB (solo Accessi Service)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Regole:
|
|
21
|
+
|
|
22
|
+
- **Accessi Service** e l'unico proprietario di:
|
|
23
|
+
- database Accessi e migrazioni
|
|
24
|
+
- `encryptionKey`
|
|
25
|
+
- SMTP
|
|
26
|
+
- chiavi JWT
|
|
27
|
+
- admin bootstrap
|
|
28
|
+
- console amministrativa
|
|
29
|
+
- **Backend A/B** non hanno credenziali del DB Accessi e non eseguono migrazioni Accessi.
|
|
30
|
+
- **Frontend A/B** fanno login su Accessi Service e usano il JWT verso i backend.
|
|
31
|
+
- La console e centralizzata su Accessi Service.
|
|
32
|
+
- Non montare `AccessiModule` in due backend puntati allo stesso database.
|
|
33
|
+
|
|
34
|
+
Se per ora Accessi e montato dentro Backend A, va bene: Backend A e il proprietario. Backend B usa solo `accessi/resource-server` e `accessi/client`.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 2. Entry point del pacchetto
|
|
39
|
+
|
|
40
|
+
| Import | Quando usarlo |
|
|
41
|
+
|---|---|
|
|
42
|
+
| `emilsoftware-utilities/accessi/server` | Backend che ospita Accessi: `AccessiModule`, `initializeAccessiModule`, updater DB, migrazioni, console. |
|
|
43
|
+
| `emilsoftware-utilities/accessi/resource-server` | Backend fratello: middleware Express, guard Nest, verifica JWT e introspection. |
|
|
44
|
+
| `emilsoftware-utilities/accessi/client` | Client OpenAPI generato per chiamare Accessi Service. |
|
|
45
|
+
| `emilsoftware-utilities/accessi/contracts` | Tipi, enum e helper puri browser-safe. |
|
|
46
|
+
| `emilsoftware-utilities/accessi/contracts/dtos` | DTO Nest con `class-validator` e decoratori OpenAPI. Solo backend. |
|
|
47
|
+
| `emilsoftware-utilities/accessi/openapi` | `setupOpenApi`, `mergeOpenApiDocuments`. |
|
|
48
|
+
| `emilsoftware-utilities/accessi/console` | `buildAccessiConsoleUrl`, URL console e ticket. |
|
|
49
|
+
| `emilsoftware-utilities/accessi/ui` | Percorsi asset Web Component frameworkless. |
|
|
50
|
+
|
|
51
|
+
Il root export `emilsoftware-utilities` resta per retrocompatibilita, ma nei nuovi progetti usare gli entry point sopra.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 3. Backend che ospita Accessi
|
|
56
|
+
|
|
57
|
+
### Bootstrap Express
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import { initializeAccessiModule } from "emilsoftware-utilities/accessi/server";
|
|
61
|
+
|
|
62
|
+
const { nestApp, document } = await initializeAccessiModule(app, options);
|
|
63
|
+
// document e il documento OpenAPI Accessi, gia con /api/accessi/*
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
`initializeAccessiModule` restituisce:
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
{
|
|
70
|
+
nestApp: INestApplication;
|
|
71
|
+
document: OpenAPIObject;
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Aprire la porta HTTP solo dopo l'await.
|
|
76
|
+
|
|
77
|
+
### Avvio standalone
|
|
78
|
+
|
|
79
|
+
Per un servizio Accessi autonomo:
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import { startAccessiService } from "emilsoftware-utilities/accessi/server";
|
|
83
|
+
|
|
84
|
+
await startAccessiService({
|
|
85
|
+
port: Number(process.env.PORT ?? 3000),
|
|
86
|
+
healthPath: "/health",
|
|
87
|
+
metrics: true,
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Oppure:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npm run accessi:serve
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Endpoint:
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
GET /health/live
|
|
101
|
+
GET /health/ready
|
|
102
|
+
GET /health/metrics
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
`/health/ready` controlla bootstrap, database, schema, store Redis configurati e `readinessChecks` custom. `startAccessiService` registra SIGTERM/SIGINT e chiude Nest e i pool Firebird.
|
|
106
|
+
|
|
107
|
+
In produzione il servizio viene eseguito come processo Node con systemd/PM2/supervisor:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
npm run accessi:serve:dist
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Dettagli e esempio systemd: `docs/standalone-service.md`.
|
|
114
|
+
|
|
115
|
+
### Validazione configurazione
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
import {
|
|
119
|
+
assertValidAccessiOptions,
|
|
120
|
+
validateAccessiOptions,
|
|
121
|
+
} from "emilsoftware-utilities/accessi/server";
|
|
122
|
+
|
|
123
|
+
const validation = validateAccessiOptions(options);
|
|
124
|
+
// validation.errors / validation.warnings
|
|
125
|
+
|
|
126
|
+
assertValidAccessiOptions(options); // fail-fast
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
`createAccessiService` la applica automaticamente. Controlla JWT/key, DB, encryption key, URL email, rate limit, console entry e `http`.
|
|
130
|
+
|
|
131
|
+
### Bootstrap Nest
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
import { AccessiModule } from "emilsoftware-utilities/accessi/server";
|
|
135
|
+
|
|
136
|
+
@Module({
|
|
137
|
+
imports: [AccessiModule.forRoot(options)],
|
|
138
|
+
})
|
|
139
|
+
export class AppModule {}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Configurazione minima
|
|
143
|
+
|
|
144
|
+
```ts
|
|
145
|
+
import type { AccessiServerOptions } from "emilsoftware-utilities/accessi/server";
|
|
146
|
+
|
|
147
|
+
const options: AccessiServerOptions = {
|
|
148
|
+
databaseOptions: {
|
|
149
|
+
host: process.env.ACCESSI_DB_HOST!,
|
|
150
|
+
port: Number(process.env.ACCESSI_DB_PORT ?? 3050),
|
|
151
|
+
database: process.env.ACCESSI_DB_NAME!,
|
|
152
|
+
user: process.env.ACCESSI_DB_USER!,
|
|
153
|
+
password: process.env.ACCESSI_DB_PASSWORD!,
|
|
154
|
+
},
|
|
155
|
+
confirmationEmailUrl: "https://app.example.com",
|
|
156
|
+
confirmationEmailReturnUrl: "https://app.example.com/login",
|
|
157
|
+
encryptionKey: process.env.ACCESSI_ENCRYPTION_KEY!,
|
|
158
|
+
mockDemoUser: false,
|
|
159
|
+
autoUpdateDatabase: true,
|
|
160
|
+
legacyPasswordMigrationOnStartup: true,
|
|
161
|
+
jwtOptions: {
|
|
162
|
+
secret: process.env.ACCESSI_JWT_SECRET!,
|
|
163
|
+
expiresIn: "24h",
|
|
164
|
+
issuer: "accessi",
|
|
165
|
+
audience: "backend-app",
|
|
166
|
+
// Per multi-servizio:
|
|
167
|
+
// algorithm: "RS256",
|
|
168
|
+
// privateKey: process.env.ACCESSI_JWT_PRIVATE_KEY,
|
|
169
|
+
// publicKey: process.env.ACCESSI_JWT_PUBLIC_KEY,
|
|
170
|
+
// keyId: "accessi-2026-01",
|
|
171
|
+
},
|
|
172
|
+
emailOptions: {
|
|
173
|
+
host: process.env.SMTP_HOST!,
|
|
174
|
+
port: Number(process.env.SMTP_PORT ?? 587),
|
|
175
|
+
secure: false,
|
|
176
|
+
requireTLS: true,
|
|
177
|
+
tls: { rejectUnauthorized: true },
|
|
178
|
+
from: "no-reply@example.com",
|
|
179
|
+
auth: { user: process.env.SMTP_USER!, pass: process.env.SMTP_PASS! },
|
|
180
|
+
},
|
|
181
|
+
serviceTokens: { enabled: true, defaultTtlDays: 365 },
|
|
182
|
+
};
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### OpenAPI
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
import { setupOpenApi, mergeOpenApiDocuments } from "emilsoftware-utilities/accessi/openapi";
|
|
189
|
+
|
|
190
|
+
const document = setupOpenApi(nestApp, {
|
|
191
|
+
openApiPath: "accessi/openapi",
|
|
192
|
+
openApiJsonPath: "accessi/openapi.json",
|
|
193
|
+
title: "Accessi API Documentation",
|
|
194
|
+
description: "API del modulo accessi",
|
|
195
|
+
enabled: true,
|
|
196
|
+
});
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Per un documento unico host:
|
|
200
|
+
|
|
201
|
+
```ts
|
|
202
|
+
const merged = mergeOpenApiDocuments(hostDocument, accessiDocument, {
|
|
203
|
+
conflict: "error", // "keep" | "overwrite"
|
|
204
|
+
});
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### HTTP, CORS e proxy
|
|
208
|
+
|
|
209
|
+
```ts
|
|
210
|
+
http: {
|
|
211
|
+
cors: {
|
|
212
|
+
origin: ["https://app.example.com"],
|
|
213
|
+
credentials: false,
|
|
214
|
+
},
|
|
215
|
+
trustProxy: 1, // load balancer/reverse proxy
|
|
216
|
+
securityHeaders: true,
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
- `cors: false` disabilita CORS.
|
|
221
|
+
- `trustProxy` e obbligatorio per rate limit corretti dietro proxy.
|
|
222
|
+
- `securityHeaders` aggiunge `X-Content-Type-Options`, `X-Frame-Options`, `Referrer-Policy`, `Permissions-Policy`.
|
|
223
|
+
- Con Bearer token non serve CSRF. Se usi cookie httpOnly, aggiungi CSRF e cookie same-site.
|
|
224
|
+
|
|
225
|
+
### JWKS e rotazione chiavi
|
|
226
|
+
|
|
227
|
+
Con RS256/ES256 Accessi pubblica automaticamente:
|
|
228
|
+
|
|
229
|
+
```text
|
|
230
|
+
GET /accessi/.well-known/jwks.json
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Configurazione:
|
|
234
|
+
|
|
235
|
+
```ts
|
|
236
|
+
jwtOptions: {
|
|
237
|
+
algorithm: "RS256",
|
|
238
|
+
privateKey: process.env.ACCESSI_JWT_PRIVATE_KEY,
|
|
239
|
+
publicKey: process.env.ACCESSI_JWT_PUBLIC_KEY,
|
|
240
|
+
keyId: "accessi-2026-02",
|
|
241
|
+
jwksPath: "accessi/.well-known/jwks.json",
|
|
242
|
+
previousPublicKeys: [
|
|
243
|
+
{
|
|
244
|
+
publicKey: process.env.ACCESSI_JWT_PUBLIC_KEY_2026_01!,
|
|
245
|
+
keyId: "accessi-2026-01",
|
|
246
|
+
algorithm: "RS256",
|
|
247
|
+
},
|
|
248
|
+
],
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Rotazione:
|
|
253
|
+
|
|
254
|
+
1. generare la nuova coppia
|
|
255
|
+
2. pubblicare la nuova chiave mantenendo la precedente in `previousPublicKeys`
|
|
256
|
+
3. firmare con la nuova `keyId`
|
|
257
|
+
4. attendere la scadenza massima dei token + il TTL cache della JWKS (default 5 minuti)
|
|
258
|
+
5. rimuovere la chiave precedente
|
|
259
|
+
|
|
260
|
+
Per un'app Nest esistente si può usare `setupAccessiJwks(app.getHttpAdapter().getInstance(), options)`.
|
|
261
|
+
|
|
262
|
+
### Store ticket console
|
|
263
|
+
|
|
264
|
+
Il default è in memoria, adatto a una sola istanza. In multi-istanza configurare uno store condiviso:
|
|
265
|
+
|
|
266
|
+
```ts
|
|
267
|
+
import { createRedisConsoleEntryStore } from "emilsoftware-utilities/accessi/server";
|
|
268
|
+
|
|
269
|
+
consoleEntry: {
|
|
270
|
+
ttlMs: 60_000,
|
|
271
|
+
store: createRedisConsoleEntryStore({
|
|
272
|
+
client: redis, // ioredis o client compatibile con eval(script, numKeys, ...args)
|
|
273
|
+
encryptionKey: process.env.ACCESSI_CONSOLE_ENTRY_KEY!,
|
|
274
|
+
keyPrefix: "accessi:console-entry:",
|
|
275
|
+
}),
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Lo store Redis:
|
|
280
|
+
|
|
281
|
+
- cifra il JWT con AES-256-GCM
|
|
282
|
+
- usa `SET ... PX ... NX` con TTL
|
|
283
|
+
- consuma con `GET` + `DEL` atomici in Lua
|
|
284
|
+
- rende il ticket monouso anche tra istanze diverse
|
|
285
|
+
|
|
286
|
+
Se lo store condiviso non è raggiungibile, la console deve fallire chiusa.
|
|
287
|
+
|
|
288
|
+
### Rate limit condiviso
|
|
289
|
+
|
|
290
|
+
Con più istanze anche i rate limit devono usare uno store condiviso:
|
|
291
|
+
|
|
292
|
+
```ts
|
|
293
|
+
import { createRedisRateLimitStore } from "emilsoftware-utilities/accessi/server";
|
|
294
|
+
|
|
295
|
+
const rateLimitStore = createRedisRateLimitStore({
|
|
296
|
+
client: redis, // ioredis o client compatibile con eval(script, numKeys, ...args)
|
|
297
|
+
keyPrefix: "accessi:rate:",
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
publicAuthRateLimit: {
|
|
301
|
+
enabled: true,
|
|
302
|
+
store: rateLimitStore,
|
|
303
|
+
login: { windowMs: 15 * 60_000, maxAttempts: 10 },
|
|
304
|
+
twoFactorVerify: { windowMs: 15 * 60_000, maxAttempts: 20 },
|
|
305
|
+
},
|
|
306
|
+
|
|
307
|
+
serviceTokens: {
|
|
308
|
+
enabled: true,
|
|
309
|
+
rateLimitStore: rateLimitStore,
|
|
310
|
+
},
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Lo store Redis usa `INCR` + `PEXPIRE` atomici:
|
|
314
|
+
|
|
315
|
+
- conta tentativi per IP e per soggetto (email, challenge, ticket, tokenId);
|
|
316
|
+
- il limite è globale tra le istanze;
|
|
317
|
+
- non viene azzerato da un restart;
|
|
318
|
+
- se Redis non è raggiungibile il controllo fallisce chiuso: l’endpoint risponde con errore, non autorizza.
|
|
319
|
+
|
|
320
|
+
Default: store in memoria. Va bene per una singola istanza o per ambienti di sviluppo.
|
|
321
|
+
|
|
322
|
+
### Edge rate limit per IP
|
|
323
|
+
|
|
324
|
+
Per una soglia grossolana davanti alle rotte Accessi:
|
|
325
|
+
|
|
326
|
+
```ts
|
|
327
|
+
edgeRateLimit: {
|
|
328
|
+
enabled: true,
|
|
329
|
+
windowMs: 60_000,
|
|
330
|
+
maxAttempts: 300,
|
|
331
|
+
store: rateLimitStore, // stesso store Redis, opzionale
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
Viene applicato prima del dispatcher Accessi e copre `/api/accessi/*`, OpenAPI e JWKS. In caso di store non disponibile risponde `503 ACCESSI_RATE_LIMIT_UNAVAILABLE`; quando la soglia è superata risponde `429 ACCESSI_EDGE_RATE_LIMITED` con `Retry-After`.
|
|
336
|
+
|
|
337
|
+
Il gateway/API gateway resta consigliato per:
|
|
338
|
+
|
|
339
|
+
- limiti di connessione e burst;
|
|
340
|
+
- bot protection e WAF;
|
|
341
|
+
- rate limit per IP a livello di rete;
|
|
342
|
+
- blocco geografico o reputazionale.
|
|
343
|
+
|
|
344
|
+
Configurazioni di riferimento: `docs/gateway-rate-limit.md`.
|
|
345
|
+
|
|
346
|
+
### Audit
|
|
347
|
+
|
|
348
|
+
Resource server ed edge rate limit producono eventi strutturati tramite `auditAccessi`. I campi sensibili vengono redatti dal Logger. Disattivabile con `audit: false` nelle rispettive opzioni.
|
|
349
|
+
|
|
350
|
+
Nel servizio standalone le metriche Prometheus sono su `/health/metrics`.
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## 4. Backend fratello — Express
|
|
355
|
+
|
|
356
|
+
```ts
|
|
357
|
+
import { createAccessiAuthMiddleware } from "emilsoftware-utilities/accessi/resource-server";
|
|
358
|
+
|
|
359
|
+
app.use(createAccessiAuthMiddleware({
|
|
360
|
+
mode: "local",
|
|
361
|
+
jwt: {
|
|
362
|
+
// HS256: passare il segreto grezzo Accessi, la KDF viene applicata qui
|
|
363
|
+
serverSecret: process.env.ACCESSI_JWT_SECRET,
|
|
364
|
+
issuer: "accessi",
|
|
365
|
+
audience: "backend-a",
|
|
366
|
+
},
|
|
367
|
+
// Opzionale: serve per leggere i grant correnti
|
|
368
|
+
introspection: {
|
|
369
|
+
url: "https://accessi.example.com/api/accessi/auth/introspect",
|
|
370
|
+
serviceToken: process.env.ACCESSI_SERVICE_TOKEN!,
|
|
371
|
+
cacheTtlMs: 30_000,
|
|
372
|
+
timeoutMs: 3_000,
|
|
373
|
+
},
|
|
374
|
+
authorization: {
|
|
375
|
+
requirements: [{ menuCode: "ORDINI", minPermissionLevel: 20 }],
|
|
376
|
+
},
|
|
377
|
+
}));
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
Dopo il middleware:
|
|
381
|
+
|
|
382
|
+
- `req.user`: payload autenticato (compatibile con il middleware storico)
|
|
383
|
+
- `req.data`: alias di `req.user`
|
|
384
|
+
- `req.userGrants`: presente solo se la policy richiede grant
|
|
385
|
+
- `req.accessi`: `{ token, user, codiceUtente, grants?, payload? }`
|
|
386
|
+
|
|
387
|
+
### HS256 vs RS256/JWKS
|
|
388
|
+
|
|
389
|
+
- **HS256**: usare `jwt.serverSecret` con `ACCESSI_JWT_SECRET`. Il resource server deriva la chiave access con la stessa KDF del server.
|
|
390
|
+
- **RS256/ES256**: usare `jwt.publicKey` PEM oppure `jwt.jwks.url`. Consigliato in multi-servizio.
|
|
391
|
+
- Il server Accessi supporta `jwtOptions.algorithm`, `privateKey`, `publicKey`, `keyId`.
|
|
392
|
+
- Accessi espone la JWKS su `jwtOptions.jwksPath` (default `accessi/.well-known/jwks.json`) quando usa RS/ES.
|
|
393
|
+
- La JWKS include la chiave corrente e le `previousPublicKeys`, per la rotazione senza downtime.
|
|
394
|
+
- Configurare il resource server con `jwks: { url: "https://accessi.example.com/accessi/.well-known/jwks.json" }`.
|
|
395
|
+
|
|
396
|
+
### Errori
|
|
397
|
+
|
|
398
|
+
| HTTP | Codice | Significato |
|
|
399
|
+
|---|---|---|
|
|
400
|
+
| 401 | `AUTH_TOKEN_MISSING` | Header Bearer assente o malformato. |
|
|
401
|
+
| 401 | `AUTH_TOKEN_INVALID` | Firma, scadenza, issuer/audience o tipo token non validi. |
|
|
402
|
+
| 401 | `AUTH_USER_CODE_MISSING` | Token senza `codiceUtente`. |
|
|
403
|
+
| 403 | `AUTH_INSUFFICIENT_PERMISSIONS` | Policy di autorizzazione non soddisfatta. |
|
|
404
|
+
| 500 | `AUTH_CONFIG_INVALID` | Configurazione resource server incompleta. |
|
|
405
|
+
| 500 | `AUTH_GRANTS_SOURCE_MISSING` | Policy richiede grant ma introspection non configurata. |
|
|
406
|
+
| 503 | `AUTH_INTROSPECTION_UNAVAILABLE` | Accessi Service non raggiungibile; fail closed. |
|
|
407
|
+
| 503 | `AUTH_INTROSPECTION_UNAUTHORIZED` | Service token invalido o senza `accessi:introspect`. |
|
|
408
|
+
| 503 | `AUTH_JWKS_UNAVAILABLE` | JWKS non raggiungibile. |
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## 5. Backend fratello — NestJS
|
|
413
|
+
|
|
414
|
+
```ts
|
|
415
|
+
import {
|
|
416
|
+
createAccessiAuthGuard,
|
|
417
|
+
type AccessiAuthenticatedRequest,
|
|
418
|
+
} from "emilsoftware-utilities/accessi/resource-server";
|
|
419
|
+
|
|
420
|
+
@UseGuards(createAccessiAuthGuard({
|
|
421
|
+
jwt: { publicKey: process.env.ACCESSI_JWT_PUBLIC_KEY, algorithms: ["RS256"] },
|
|
422
|
+
introspection: {
|
|
423
|
+
url: process.env.ACCESSI_INTROSPECT_URL!,
|
|
424
|
+
serviceToken: process.env.ACCESSI_SERVICE_TOKEN!,
|
|
425
|
+
},
|
|
426
|
+
authorization: {
|
|
427
|
+
requirements: [{ menuCode: "ORDINI", minPermissionLevel: 20 }],
|
|
428
|
+
},
|
|
429
|
+
}))
|
|
430
|
+
@Get("ordini")
|
|
431
|
+
list(@Req() req: AccessiAuthenticatedRequest) {
|
|
432
|
+
return req.user;
|
|
433
|
+
}
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
Il guard mappa gli errori in `UnauthorizedException`, `ForbiddenException`, `ServiceUnavailableException` o `InternalServerErrorException`.
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
## 6. Introspection
|
|
441
|
+
|
|
442
|
+
Endpoint:
|
|
443
|
+
|
|
444
|
+
```http
|
|
445
|
+
POST /api/accessi/auth/introspect
|
|
446
|
+
Authorization: Bearer <service-token>
|
|
447
|
+
Content-Type: application/json
|
|
448
|
+
|
|
449
|
+
{ "token": "<access-token-utente>" }
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
Scope richiesto:
|
|
453
|
+
|
|
454
|
+
```text
|
|
455
|
+
accessi:introspect
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
Risposta:
|
|
459
|
+
|
|
460
|
+
```json
|
|
461
|
+
{
|
|
462
|
+
"Status": { "errorCode": "0", "errorDescription": "" },
|
|
463
|
+
"Result": {
|
|
464
|
+
"active": true,
|
|
465
|
+
"user": { "codiceUtente": 123, "email": "utente@example.com" },
|
|
466
|
+
"grants": { "abilitazioni": [], "ruoli": [], "grants": [] }
|
|
467
|
+
},
|
|
468
|
+
"Message": "Dati recuperati con successo."
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
- `active: false` per token invalido, scaduto o utente disabilitato.
|
|
473
|
+
- Gli errori di database/configurazione sono 500: non vanno interpretati come token scaduto.
|
|
474
|
+
- Il client `createAccessiIntrospectionClient` normalizza `Result`, applica timeout e cache.
|
|
475
|
+
- Il resource server cachea i risultati attivi per `cacheTtlMs` (default 30s). I risultati inattivi non sono cachati.
|
|
476
|
+
- Fail closed: se Accessi Service non risponde, la richiesta non viene autorizzata.
|
|
477
|
+
|
|
478
|
+
### SSO exchange service-to-service
|
|
479
|
+
|
|
480
|
+
Se un backend fratello valida un provider SSO proprio, non deve duplicare utenti o grant. Dopo aver verificato firma, issuer, audience e subject del provider, chiama:
|
|
481
|
+
|
|
482
|
+
```http
|
|
483
|
+
POST /api/accessi/federated-auth/exchange
|
|
484
|
+
Authorization: Bearer <service-token>
|
|
485
|
+
Content-Type: application/json
|
|
486
|
+
|
|
487
|
+
{ "provider": "azure-ad-acme-produzione", "subject": "<oid o sub>" }
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
Scope richiesto: `accessi:federated:exchange`.
|
|
491
|
+
|
|
492
|
+
La risposta contiene:
|
|
493
|
+
|
|
494
|
+
- `codiceUtente`
|
|
495
|
+
- `login` con profilo, grant e token
|
|
496
|
+
- `token` assente quando è richiesta la verifica 2FA
|
|
497
|
+
|
|
498
|
+
Accessi non riceve il token del provider: riceve solo l'identità esterna già verificata.
|
|
499
|
+
|
|
500
|
+
### Revoca sessioni
|
|
501
|
+
|
|
502
|
+
Configurazione:
|
|
503
|
+
|
|
504
|
+
```ts
|
|
505
|
+
import { createRedisSessionRevocationStore } from "emilsoftware-utilities/accessi/server";
|
|
506
|
+
|
|
507
|
+
sessionRevocation: {
|
|
508
|
+
store: createRedisSessionRevocationStore({
|
|
509
|
+
client: redis,
|
|
510
|
+
ttlMs: 30 * 24 * 60 * 60 * 1000, // maggiore della durata massima dei token
|
|
511
|
+
}),
|
|
512
|
+
}
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
Endpoint utente:
|
|
516
|
+
|
|
517
|
+
```http
|
|
518
|
+
POST /api/accessi/auth/revoke-sessions
|
|
519
|
+
Authorization: Bearer <access-token>
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
Invalida i token emessi prima della chiamata. I token emessi dopo restano validi. Per i backend fratelli configurare lo stesso store anche nel resource server:
|
|
523
|
+
|
|
524
|
+
```ts
|
|
525
|
+
revocation: {
|
|
526
|
+
store: revocationStore,
|
|
527
|
+
}
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
Senza store condiviso la revoca vale solo nel processo che la esegue.
|
|
531
|
+
|
|
532
|
+
---
|
|
533
|
+
|
|
534
|
+
## 7. Frontend
|
|
535
|
+
|
|
536
|
+
### Login
|
|
537
|
+
|
|
538
|
+
Il frontend chiama Accessi Service:
|
|
539
|
+
|
|
540
|
+
```ts
|
|
541
|
+
import { configureAccessiClient, login } from "emilsoftware-utilities/accessi/client";
|
|
542
|
+
|
|
543
|
+
configureAccessiClient({
|
|
544
|
+
baseUrl: "https://accessi.example.com",
|
|
545
|
+
token: null,
|
|
546
|
+
});
|
|
547
|
+
|
|
548
|
+
const response = await login({ email, password });
|
|
549
|
+
const token = response.data.Result.token.value;
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
Dopo il login:
|
|
553
|
+
|
|
554
|
+
```ts
|
|
555
|
+
configureAccessiClient({
|
|
556
|
+
baseUrl: "https://accessi.example.com",
|
|
557
|
+
token,
|
|
558
|
+
});
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
Se `jwtOptions.refreshExpiresIn` è configurato, la risposta contiene anche `refreshToken`. Conservarlo separatamente dall’access token e usarlo su:
|
|
562
|
+
|
|
563
|
+
```http
|
|
564
|
+
POST /api/accessi/auth/refresh
|
|
565
|
+
Content-Type: application/json
|
|
566
|
+
|
|
567
|
+
{ "refreshToken": "<refresh-token>" }
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
La risposta contiene un nuovo `token` e un nuovo `refreshToken`. Il refresh token ha `typ: "refresh"` e non va mai usato come Bearer sulle API.
|
|
571
|
+
|
|
572
|
+
Per rendere il refresh token monouso anche in multi-istanza:
|
|
573
|
+
|
|
574
|
+
```ts
|
|
575
|
+
import { createRedisRefreshTokenRotationStore } from "emilsoftware-utilities/accessi/server";
|
|
576
|
+
|
|
577
|
+
refreshTokenRotation: {
|
|
578
|
+
store: createRedisRefreshTokenRotationStore({ client: redis }),
|
|
579
|
+
}
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
Ogni refresh consuma il vecchio `jti` in modo atomico. Due refresh concorrenti dello stesso token producono un solo successo.
|
|
583
|
+
|
|
584
|
+
Per token che cambiano nel tempo:
|
|
585
|
+
|
|
586
|
+
```ts
|
|
587
|
+
configureAccessiClient({
|
|
588
|
+
baseUrl: "https://accessi.example.com",
|
|
589
|
+
getToken: () => authStore.getToken(),
|
|
590
|
+
});
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
### Chiamate ai backend
|
|
594
|
+
|
|
595
|
+
Il frontend usa il JWT Accessi come Bearer verso Backend A/B. Non serve che il frontend importi il resource server.
|
|
596
|
+
|
|
597
|
+
### Console
|
|
598
|
+
|
|
599
|
+
Non incorporare la console in ogni applicazione. Linkare Accessi Service:
|
|
600
|
+
|
|
601
|
+
```ts
|
|
602
|
+
import { buildAccessiConsoleUrl } from "emilsoftware-utilities/accessi/console";
|
|
603
|
+
|
|
604
|
+
const consoleUrl = buildAccessiConsoleUrl("https://accessi.example.com", {
|
|
605
|
+
entryTicket: ticket, // da POST /api/accessi/console/entry
|
|
606
|
+
});
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
- Il JWT non va mai nell'URL.
|
|
610
|
+
- Il ticket e monouso, dura 60 secondi.
|
|
611
|
+
- Per il 2FA handoff usare `twoFactorChallengeId`.
|
|
612
|
+
- Se la console deve stare sullo stesso dominio, fare reverse proxy di `/api/accessi/*` verso Accessi Service, non copiare gli asset.
|
|
613
|
+
- Se la UI della console è su un dominio diverso dall’API, configurare `consoleApiBaseUrl`: Accessi inietta `window.__ACCESSI_API_BASE_URL__` nella pagina servita.
|
|
614
|
+
|
|
615
|
+
### Web component
|
|
616
|
+
|
|
617
|
+
```html
|
|
618
|
+
<script type="module" src="/assets/aree-disponibili/aree-disponibili.js"></script>
|
|
619
|
+
<es-aree-disponibili></es-aree-disponibili>
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
I componenti sono frameworkless e ricevono i dati via proprieta; non fanno chiamate di rete.
|
|
623
|
+
|
|
624
|
+
---
|
|
625
|
+
|
|
626
|
+
## 8. Contratti e DTO
|
|
627
|
+
|
|
628
|
+
- `accessi/contracts`: tipi/enum/helper puri, adatti anche al browser.
|
|
629
|
+
- `accessi/contracts/dtos`: DTO Nest con decoratori; non usarli in bundle frontend leggeri.
|
|
630
|
+
- `accessi/client`: tipi generati dall'OpenAPI e funzioni HTTP; e la fonte consigliata per frontend e backend fratelli.
|
|
631
|
+
|
|
632
|
+
Non usare i DTO server come contratto pubblico se il frontend non ha `class-validator`, `class-transformer` e `reflect-metadata`.
|
|
633
|
+
|
|
634
|
+
---
|
|
635
|
+
|
|
636
|
+
## 9. Service token
|
|
637
|
+
|
|
638
|
+
Per chiamare l'introspection o API tecniche:
|
|
639
|
+
|
|
640
|
+
1. Abilitare `serviceTokens: { enabled: true }` su Accessi Service.
|
|
641
|
+
2. Creare un token dalla console o con `POST /api/accessi/service-token`.
|
|
642
|
+
3. Assegnare lo scope minimo necessario:
|
|
643
|
+
- `accessi:introspect` per l'introspection
|
|
644
|
+
- `accessi:federated:exchange` per scambiare un'identita SSO verificata
|
|
645
|
+
- altri scope applicativi secondo necessita
|
|
646
|
+
4. Conservarlo come secret nel backend fratello.
|
|
647
|
+
5. Ruotarlo periodicamente; il segreto e mostrato una sola volta.
|
|
648
|
+
|
|
649
|
+
Non usare un service token nel browser.
|
|
650
|
+
|
|
651
|
+
---
|
|
652
|
+
|
|
653
|
+
## 10. Sicurezza: regole non negoziabili
|
|
654
|
+
|
|
655
|
+
- Il database Accessi è solo di Accessi Service.
|
|
656
|
+
- `encryptionKey`, SMTP, chiavi private JWT e admin bootstrap restano solo su Accessi Service.
|
|
657
|
+
- In multi-servizio usare RS256/ES256 con chiave pubblica/JWKS. HS256 con segreto condiviso e accettabile solo come fase transitoria.
|
|
658
|
+
- Non inserire JWT, ticket console o service token nei log.
|
|
659
|
+
- Non mettere JWT o ticket nell'URL; il ticket console va nel fragment `#entry=`.
|
|
660
|
+
- La console va centralizzata.
|
|
661
|
+
- Le rotte amministrative richiedono policy esplicite; non fidarsi dei flag nel token senza introspection.
|
|
662
|
+
- Le richieste con introspection non raggiungibile devono fallire chiuse.
|
|
663
|
+
- Usare `issuer` e `audience` per evitare token di ambienti diversi.
|
|
664
|
+
|
|
665
|
+
---
|
|
666
|
+
|
|
667
|
+
## 11. Variabili ambiente consigliate
|
|
668
|
+
|
|
669
|
+
Accessi Service:
|
|
670
|
+
|
|
671
|
+
```env
|
|
672
|
+
ACCESSI_DB_HOST=
|
|
673
|
+
ACCESSI_DB_PORT=3050
|
|
674
|
+
ACCESSI_DB_NAME=
|
|
675
|
+
ACCESSI_DB_USER=
|
|
676
|
+
ACCESSI_DB_PASSWORD=
|
|
677
|
+
ACCESSI_ENCRYPTION_KEY=
|
|
678
|
+
ACCESSI_JWT_SECRET=
|
|
679
|
+
ACCESSI_JWT_EXPIRES=24h
|
|
680
|
+
ACCESSI_JWT_REFRESH_EXPIRES=30d
|
|
681
|
+
ACCESSI_JWT_ISSUER=accessi
|
|
682
|
+
ACCESSI_JWT_AUDIENCE=backend-app
|
|
683
|
+
# Opzionale RS256
|
|
684
|
+
ACCESSI_JWT_ALGORITHM=RS256
|
|
685
|
+
ACCESSI_JWT_PRIVATE_KEY=
|
|
686
|
+
ACCESSI_JWT_PUBLIC_KEY=
|
|
687
|
+
ACCESSI_JWT_KEY_ID=
|
|
688
|
+
ACCESSI_JWKS_PATH=accessi/.well-known/jwks.json
|
|
689
|
+
ACCESSI_CONSOLE_ENTRY_TTL_MS=60000
|
|
690
|
+
ACCESSI_CONSOLE_ENTRY_KEY=
|
|
691
|
+
SMTP_HOST=
|
|
692
|
+
SMTP_PORT=587
|
|
693
|
+
SMTP_USER=
|
|
694
|
+
SMTP_PASS=
|
|
695
|
+
ACCESSI_EMAIL_FROM=
|
|
696
|
+
```
|
|
697
|
+
|
|
698
|
+
Backend fratello:
|
|
699
|
+
|
|
700
|
+
```env
|
|
701
|
+
ACCESSI_JWT_PUBLIC_KEY=
|
|
702
|
+
# oppure, solo HS256 transitorio:
|
|
703
|
+
ACCESSI_JWT_SECRET=
|
|
704
|
+
ACCESSI_JWT_ISSUER=accessi
|
|
705
|
+
ACCESSI_JWT_AUDIENCE=backend-a
|
|
706
|
+
ACCESSI_INTROSPECT_URL=https://accessi.example.com/api/accessi/auth/introspect
|
|
707
|
+
ACCESSI_SERVICE_TOKEN=
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
Frontend:
|
|
711
|
+
|
|
712
|
+
```env
|
|
713
|
+
ACCESSI_API_BASE_URL=https://accessi.example.com
|
|
714
|
+
ACCESSI_CONSOLE_URL=https://accessi.example.com/api/accessi/console
|
|
715
|
+
ACCESSI_JWKS_URL=https://accessi.example.com/accessi/.well-known/jwks.json
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
---
|
|
719
|
+
|
|
720
|
+
## 12. Migrazione da Accessi embedded
|
|
721
|
+
|
|
722
|
+
Checklist:
|
|
723
|
+
|
|
724
|
+
1. Scegliere il proprietario: Accessi Service o un backend esistente.
|
|
725
|
+
2. Se il DB resta lo stesso, non migrare i dati; cambiare solo rete e credenziali.
|
|
726
|
+
3. Mantenere la stessa `encryptionKey` finche tutte le password legacy non sono migrate.
|
|
727
|
+
4. Introdurre `issuer`/`audience` o RS256 solo con una finestra di migrazione: i token vecchi possono diventare invalidi.
|
|
728
|
+
5. Spostare la console una sola volta.
|
|
729
|
+
6. Passare i backend fratelli a `resource-server`.
|
|
730
|
+
7. Configurare un service token con `accessi:introspect`.
|
|
731
|
+
8. Pubblicare la JWKS e configurare i resource server su `jwks.url`.
|
|
732
|
+
9. In multi-istanza configurare `consoleEntry.store`, `publicAuthRateLimit.store` e `serviceTokens.rateLimitStore` con Redis.
|
|
733
|
+
10. Testare:
|
|
734
|
+
- login
|
|
735
|
+
- token valido
|
|
736
|
+
- token scaduto
|
|
737
|
+
- utente disabilitato
|
|
738
|
+
- revoca grants
|
|
739
|
+
- Accessi Service spento (fail closed)
|
|
740
|
+
- console entry ticket su istanze diverse
|
|
741
|
+
- rate limit condiviso tra istanze
|
|
742
|
+
- rotazione JWKS con vecchia chiave ancora valida
|
|
743
|
+
11. Aggiornare CORS se i frontend cambiano dominio.
|
|
744
|
+
12. Aggiornare monitoraggio e log senza includere token.
|
|
745
|
+
13. Eseguire `npm run check:accessi-openapi` e `npm run typecheck` prima del rilascio.
|
|
746
|
+
14. Dopo una modifica intenzionale al contratto, aggiornare il fingerprint con `npm run accessi:update-openapi-fingerprint` e includerlo nel commit.
|
|
747
|
+
|
|
748
|
+
---
|
|
749
|
+
|
|
750
|
+
## 13. Prompt operativo da copiare
|
|
751
|
+
|
|
752
|
+
### Per un backend
|
|
753
|
+
|
|
754
|
+
> Integra Accessi usando l'entry point corretto. Se questo backend possiede il database Accessi, usa `emilsoftware-utilities/accessi/server` e `initializeAccessiModule`/`AccessiModule.forRoot`. Se non lo possiede, non importare `AccessiModule` e non configurare il database Accessi: usa `emilsoftware-utilities/accessi/resource-server` con `createAccessiAuthMiddleware` (Express) o `createAccessiAuthGuard` (Nest). Configura `jwt` con `publicKey`/`jwks` (preferito) o `serverSecret` (HS256), `issuer` e `audience`. Se servono grant, configura `introspection` con URL e service token scope `accessi:introspect`, e una cache breve. Applica una policy `authorization` esplicita sulle rotte sensibili. Non fidarti dei flag nel token senza introspection. Usa `accessi/client` per chiamare Accessi Service e `accessi/contracts` per i tipi. Non inserire token nei log o negli URL.
|
|
755
|
+
|
|
756
|
+
### Per un frontend
|
|
757
|
+
|
|
758
|
+
> Usa `emilsoftware-utilities/accessi/client`: chiama `configureAccessiClient({ baseUrl, token })` dopo il login e `getToken` se il token cambia. Il login, il refresh, il 2FA e il reset password passano da Accessi Service. Verso i backend usa `Authorization: Bearer <access-token>`. Non incorporare il database o il server Accessi. Per la console usa `buildAccessiConsoleUrl` con il ticket monouso restituito da `POST /api/accessi/console/entry`; non mettere mai il JWT nell'URL. Per i componenti UI usa gli asset di `accessi/ui`. Gestisci gli errori 401 (`AUTH_TOKEN_INVALID`) portando l'utente al login e 403 (`AUTH_INSUFFICIENT_PERMISSIONS`) mostrando un messaggio di permessi insufficienti.
|
|
759
|
+
|
|
760
|
+
### Per un agente AI
|
|
761
|
+
|
|
762
|
+
> Prima di modificare codice, leggi `integration-prompt.md`, `WIKI.md` e `src/accessi-module/Console/changelog.md`. Rispetta la separazione dei ruoli: `accessi/server` solo sul proprietario del DB, `accessi/resource-server` sui backend fratelli. Non aggiungere dipendenze dal database Accessi nei resource server. Non inventare endpoint: l'introspection e `POST /api/accessi/auth/introspect` con service token scope `accessi:introspect`. Non cambiare i default HS256 senza una finestra di migrazione. Aggiungi test per token valido, scaduto, utente disabilitato, permessi insufficienti e introspection non raggiungibile.
|
|
763
|
+
|
|
764
|
+
---
|
|
765
|
+
|
|
766
|
+
## 14. Limiti attuali da conoscere
|
|
767
|
+
|
|
768
|
+
- I ticket di ingresso console usano lo store in memoria per default: in multi-istanza configurare `consoleEntry.store` con Redis. Lo store Redis e cifrato e monouso, ma richiede un client Redis compatibile.
|
|
769
|
+
- I rate limit usano lo store in memoria per default: in multi-istanza configurare `publicAuthRateLimit.store` e `serviceTokens.rateLimitStore` con Redis. Il gateway resta comunque consigliato per i limiti grossolani per IP.
|
|
770
|
+
- Il client generato e completo (include endpoint amministrativi): non distribuirlo a frontend non amministrativi senza valutare gli endpoint esposti. Per un client pubblico ridotto, generare un sottoinsieme per tag con Orval.
|
|
771
|
+
- I DTO in `accessi/contracts/dtos` dipendono da Nest/class-validator: non sono pensati per bundle frontend minimali.
|
|
772
|
+
- La JWKS viene pubblicata solo con algoritmi asimmetrici: con HS256 non esiste una chiave pubblica da distribuire.
|