Skip to content

Application Tokens

Backlog fieldValue
Story IDAP-GS-001
EpicGeneral Settings
Story typeBusiness workflow
Review statusDraft - business analyst and business owner review required
Source evidenceAppsPortal.Apis controller, application command/query handlers, validators, domain entities, and matching MFE workflow where available
Last source review2026-07-10

User story

As integration administrators, I want to generate and control application tokens so that approved integrations authenticate without sharing user credentials.

Acceptance criteria

  1. Only authorized users can view or execute the feature's actions.
  2. Required business data, active dependencies, tenant/branch scope, and current document state are validated.
  3. Invalid requests return actionable validation errors without applying a partial change.
  4. Search, list, view, print, and export operations use the same authorized business scope.
  5. Material create, edit, status, approval, posting, reversal, and integration actions are auditable where applicable.
  6. Financial or stock effects are applied atomically and no more than once.

Business rules

Required

Token name/application, allowed scope, owner/tenant, expiry, and authorization are required.

Optional or conditional

Description, IP/audience restrictions, and shorter custom expiry are optional.

Action behavior

Generate shows the secret only according to security policy; revoke immediately prevents future authentication.

Blocking rule or downstream effect

Tokens grant API access only and never bypass tenant, permission, or business validation.

Frontend page coverage

The following UI coverage is sourced from the pulled MFE route configuration. A Module-level supporting artifact mapping is evidence of a reachable screen, but requires BA confirmation that it belongs to this story rather than a more specific feature story.

Route/pageComponentModeRoute permission/guardMapping confidenceSource
(module default)DashboardComponentDashboardNo route-level permission/guard found in source windowModule-level supporting artifactapps/erpHome/src/app/remote-entry/home/dashboard.module.ts:9
(module default)DiscountPolicyListComponentList/navigationPermission: AppGeneralSettingsPermissions.DiscountPolicy_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:190
(module default)EtaSendInvoicesListComponentList/navigationPermission: AppGeneralSettingsPermissions.EtaInvoices_List; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:219
(module default)FinancialCalendarListComponentList/navigationPermission: AppGeneralSettingsPermissions.FinincalCalender_Add; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:94
(module default)LayoutPageComponentList/navigationGuards: AuthGuard , moduleLicenseGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:20
(module default)MainRolesComponentList/navigationPermission: AppGeneralSettingsPermissions.Role_List; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:36
(module default)PaymentTermListComponentList/navigationPermission: AppGeneralSettingsPermissions.PaymentTerms_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:278
(module default)RegisterAccountComponentList/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/erpHome/src/app/remote-entry/whatsapp-integration/whatsapp-integration.module.ts:11
(module default)RolesComponentList/navigationPermission: AppGeneralSettingsPermissions.Role_List; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:53
(module default)TagListComponentList/navigationPermission: AppGeneralSettingsPermissions.Tags_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:59
(module default)TagListComponentList/navigationPermission: AppGeneralSettingsPermissions.Tags_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:74
(module default)UserSettingsListComponentList/navigationPermission: AppGeneralSettingsPermissions.UserSettings_List; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:154
(module default)VatReportComponentReport/printPermission: AppGeneralSettingsPermissions.ZatcaIntegrationReport_List; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/reports/reports.module.ts:14
(module default)ZatcaSettingsViewComponentView/detailPermission: AppGeneralSettingsPermissions.ZatcaSendingOptions_View,; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:117
addAddPaymentTermComponentAddPermission: AppGeneralSettingsPermissions.PaymentTerms_Add; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:288
addCreateFinancialCalendarComponentAddPermission: AppGeneralSettingsPermissions.FinincalCalender_Add; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:101
addCreateRoleComponentAddPermission: AppGeneralSettingsPermissions.Role_Add; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:63
addDiscoutPolicyAddComponentAddPermission: AppGeneralSettingsPermissions.DiscountPolicy_Add; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:200
admin() => import('./admin/admin.module').then((m) => m.AdminModule)ImportNo route-level permission/guard found in source windowModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:42
currency-definitionCurrencyDefinitionComponentList/navigationPermission: AppGeneralSettingsPermissions.CurrencyDefinition_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:123
dashboardLazy-loaded routeDashboardNo route-level permission/guard found in source windowModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:50
editZatcaSettingsEditComponentEditPermission: AppGeneralSettingsPermissions.ZatcaSendingOptions_Edit,; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:129
edit/:idEditDiscountPolicyComponentEditPermission: AppGeneralSettingsPermissions.TaxDefinition_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:171
edit/:idEditDiscountPolicyComponentEditPermission: AppGeneralSettingsPermissions.DiscountPolicy_Edit; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:220
edit/:idEditFinancialCalendarComponentEditPermission: AppGeneralSettingsPermissions.FinincalCalender_Edit; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:111
edit/:idEditPaymentTermComponentEditPermission: AppGeneralSettingsPermissions.PaymentTerms_Edit; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:299
edit/:idEditRoleComponentEditPermission: AppGeneralSettingsPermissions.Role_Edit , AppGeneralSettingsPermissions.Role_View; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:73
edit/:idEditUserSettingsComponentEditPermission: AppGeneralSettingsPermissions.UserSettings_Edit; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:165
eta-invoicesMainEtaSendInvoicesComponentList/navigationPermission: AppGeneralSettingsPermissions.EtaInvoices_List; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:215
generate-app-tokenGenerateAppTokenComponentList/navigationPermission: AppGeneralSettingsPermissions.GenerateAppToken_View; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:85
history/:invoiceIdEtaSendInvoiceHistoryComponentList/navigationPermission: AppGeneralSettingsPermissions.EtaInvoices_List; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:229
home-help-pageLazy-loaded routeList/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:56
integrationLazy-loaded routeList/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:244
integration-settingEtaConnectionSettingsComponentList/navigationPermission: AppGeneralSettingsPermissions.IntegrationSetting_View,; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:203
loginLogoutComponent }List/navigationGuards: AuthGuard , moduleLicenseGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:14
login-redirectLogoutRedirectComponent }List/navigationGuards: AuthGuard , moduleLicenseGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:16
logoutLoginRedirectComponent }List/navigationGuards: AuthGuard , moduleLicenseGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:15
logout-redirectUnAuthorizedComponent }List/navigationGuards: AuthGuard , moduleLicenseGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:17
masterdataLazy-loaded routeList/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:35
my-profileUserProfileComponentList/navigationPermission: AppGeneralSettingsPermissions.User_Profile; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:258
payment-termMainPaymentTermComponentList/navigationPermission: AppGeneralSettingsPermissions.PaymentTerms_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:268
reports() => import('./reports/reports.module').then((m) => m.ReportsModule)ImportNo route-level permission/guard found in source windowModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:46
requestsRequestsComponentList/navigationPermission: AppGeneralSettingsPermissions.TaxDefinition_ListFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:163
sequenceSequenceComponentSequencePermission: 'ALL_PERMISSIONS'; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:230
settingRegisterAccountComponentList/navigationPermission: AppGeneralSettingsPermissions.WhatsAppIntegration_View , AppGeneralSettingsPermissions.WhatsAppIntegration_Edit; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/whatsapp-integration/whatsapp-integration.module.ts:16
signature-service-settingEtaServiceDownloadComponentList/navigationPermission: AppGeneralSettingsPermissions.SignatureServiceSetting_View,; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:191
un-authorizedLayoutPageComponentList/navigationGuards: AuthGuard , moduleLicenseGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/routes.ts:18
vat-reportVatReportComponentReport/printPermission: AppGeneralSettingsPermissions.ZatcaIntegrationReport_List; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/reports/reports.module.ts:16
view/:idDiscoutPolicyDetailsComponentView/detailPermission: AppGeneralSettingsPermissions.DiscountPolicy_View; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:210
view/:idViewIntegrationDetailsComponentView/detailPermission: AppGeneralSettingsPermissions.WhatsAppIntegration_View , AppGeneralSettingsPermissions.WhatsAppIntegration_Edit; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/whatsapp-integration/whatsapp-integration.module.ts:27
view/:idViewPaymentTermComponentView/detailPermission: AppGeneralSettingsPermissions.PaymentTerms_View; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:310
view/:idViewUserSettingsComponentView/detailPermission: AppGeneralSettingsPermissions.UserSettings_View; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:175
whatsapp-integration-settingsLazy-loaded routeList/navigationNo route-level permission/guard found in source windowFeature token matchapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:247
workflowconfigLazy-loaded routeList/navigationPermission: AppGeneralSettingsPermissions.User_Profile; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:251
zatca-invoicesZatcaInvoicesComponentList/navigationPermission: AppGeneralSettingsPermissions.ZatcaIntegrationReport_List; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/reports/reports.module.ts:24
zatca-sending-optionsZatcaSettingsMainComponentList/navigationPermission: AppGeneralSettingsPermissions.ZatcaSendingOptions_View; Guards: PolicyAuthGuardModule-level supporting artifactapps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:107

Observed frontend fields and validation

ComponentControlObserved frontend ruleComponent source
CreateFinancialCalendarComponentcodeRequired in component validatorapps/erpHome/src/app/remote-entry/general-setting/components/create-financial-calendar/create-financial-calendar.component.ts
CreateFinancialCalendarComponentnameRequired in component validatorapps/erpHome/src/app/remote-entry/general-setting/components/create-financial-calendar/create-financial-calendar.component.ts
CreateFinancialCalendarComponentrangeRequired in component validatorapps/erpHome/src/app/remote-entry/general-setting/components/create-financial-calendar/create-financial-calendar.component.ts
CreateRoleComponentisActiveVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/AccessControl/create-role/create-role.component.ts
CreateRoleComponentrestrictLicenseVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/AccessControl/create-role/create-role.component.ts
CreateRoleComponentroleNameVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/AccessControl/create-role/create-role.component.ts
CreateRoleComponentroleNameArVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/AccessControl/create-role/create-role.component.ts
DiscoutPolicyAddComponentdiscountPercentageVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/discout-policy-add/discout-policy-add.component.ts
DiscoutPolicyAddComponentnameVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/discout-policy-add/discout-policy-add.component.ts
DiscoutPolicyAddComponentnameArVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/discout-policy-add/discout-policy-add.component.ts
DiscoutPolicyViewHeaderComponentcodeVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/components/discout-policy-view-header/discout-policy-view-header.component.ts
DiscoutPolicyViewHeaderComponentnameVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/components/discout-policy-view-header/discout-policy-view-header.component.ts
DiscoutPolicyViewHeaderComponentnameArVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/components/discout-policy-view-header/discout-policy-view-header.component.ts
DiscoutPolicyViewHeaderComponentpercentageVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/components/discout-policy-view-header/discout-policy-view-header.component.ts
EditDiscountPolicyComponentcodeVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/edit-discount-policy/edit-discount-policy.component.ts
EditDiscountPolicyComponentdiscountPercentageRequired in component validatorapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/edit-discount-policy/edit-discount-policy.component.ts
EditDiscountPolicyComponentnameRequired in component validatorapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/edit-discount-policy/edit-discount-policy.component.ts
EditDiscountPolicyComponentnameArRequired in component validatorapps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/edit-discount-policy/edit-discount-policy.component.ts
EditFinancialCalendarComponentcodeVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/components/edit-financial-calendar/edit-financial-calendar.component.ts
EditFinancialCalendarComponentnameVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/components/edit-financial-calendar/edit-financial-calendar.component.ts
EditFinancialCalendarComponentrangeDatesVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/components/edit-financial-calendar/edit-financial-calendar.component.ts
EditRoleComponentisActiveVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/AccessControl/edit-role/edit-role.component.ts
EditRoleComponentrestrictLicenseVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/AccessControl/edit-role/edit-role.component.ts
EditRoleComponentroleNameVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/AccessControl/edit-role/edit-role.component.ts
EditRoleComponentroleNameArVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/AccessControl/edit-role/edit-role.component.ts
EditUserSettingsComponentallowChangeInCostCenterVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentallowExceedCustomerCreditLimitVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentallowSellingBelowPriceLimitInSalesOrderVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentbankIdVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentbranchIdsVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentcanEditSalesPriceInSalesInvoiceVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentcanEditSalesPriceInSalesOrderVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentenableMaximumSalesPriceLimitInSalesInvoiceVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentmaximumPricePercentageInSalesInvoiceVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentmaximumPricePercentageInSalesOrderVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentminimumPricePercentageInSalesOrderVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentnameVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponenttreasuryIdVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EditUserSettingsComponentwarehouseIdVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/edit-user-settings/edit-user-settings.component.ts
EtaConnectionSettingsComponentapiKeyRequired in component validatorapps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-connection-settings/eta-connection-settings.component.ts
EtaConnectionSettingsComponentcallbackUrlRequired in component validatorapps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-connection-settings/eta-connection-settings.component.ts
EtaConnectionSettingsComponentclientIdRequired in component validatorapps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-connection-settings/eta-connection-settings.component.ts
EtaConnectionSettingsComponentclientSecretRequired in component validatorapps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-connection-settings/eta-connection-settings.component.ts
EtaConnectionSettingsComponentexpirationDateRequired in component validatorapps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-connection-settings/eta-connection-settings.component.ts
EtaServiceDownloadComponentportNoVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-service-download/eta-service-download.component.ts
EtaServiceDownloadComponenttokenPinNoVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-service-download/eta-service-download.component.ts
EtaServiceDownloadComponenttokenSerialNoVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-service-download/eta-service-download.component.ts
EtaServiceDownloadComponenttokenTypeVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-service-download/eta-service-download.component.ts
RegisterAccountComponentemailRequired in component validatorapps/erpHome/src/app/remote-entry/whatsapp-integration/pages/register-account/register-account.component.ts
RegisterAccountComponentpasswordRequired in component validatorapps/erpHome/src/app/remote-entry/whatsapp-integration/pages/register-account/register-account.component.ts
VatReportComponentdateRangeRequired in component validatorapps/erpHome/src/app/remote-entry/reports/components/vat-report/vat-report.component.ts
ViewUserSettingsComponentallowChangeInCostCenterVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentallowExceedCustomerCreditLimitVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentallowSellingBelowPriceLimitInSalesInvoiceVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentallowSellingBelowPriceLimitInSalesOrderVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentcanEditSalesPriceInSalesInvoiceVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentcanEditSalesPriceInSalesOrderVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentenableMaximumSalesPriceLimitInSalesInvoiceVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentenableMaximumSalesPriceLimitInSalesOrderVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentmaximumPricePercentageInSalesInvoiceVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentmaximumPricePercentageInSalesOrderVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentminimumPricePercentageInSalesInvoiceVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ViewUserSettingsComponentminimumPricePercentageInSalesOrderVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ZatcaSettingsEditComponentautomaticSendingVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/admin/pages/zatca-settings/zatca-settings-edit/zatca-settings-edit.component.ts
ZatcaSettingsEditComponenttriggerActionKeyConditionally required/validated in componentapps/erpHome/src/app/remote-entry/admin/pages/zatca-settings/zatca-settings-edit/zatca-settings-edit.component.ts

Observed frontend actions

ComponentClick action/handlerBusiness review requirementComponent source
CreateFinancialCalendarComponentonGenerateDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/general-setting/components/create-financial-calendar/create-financial-calendar.component.ts
CurrencyDefinitionComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/erpHome/src/app/remote-entry/general-setting/pages/currencyDefinition/currency-definition/currency-definition.component.ts
DiscountPolicyListComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/discount-policy-list/discount-policy-list.component.ts
DiscountPolicyListComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/discount-policy-list/discount-policy-list.component.ts
DiscountPolicyListComponentonViewOpen the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data.apps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/discount-policy-list/discount-policy-list.component.ts
DiscoutPolicyAddComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/discout-policy-add/discout-policy-add.component.ts
DiscoutPolicyAddComponentopenAddUserModalDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/discout-policy-add/discout-policy-add.component.ts
EditDiscountPolicyComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/edit-discount-policy/edit-discount-policy.component.ts
EditDiscountPolicyComponentopenAddUserModalDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/general-setting/pages/Discount policy/pages/edit-discount-policy/edit-discount-policy.component.ts
EditFinancialCalendarComponentoncloseYearLeave or close without persisting; warn when the current form has unsaved changes and restore the prior list/filter context.apps/erpHome/src/app/remote-entry/general-setting/components/edit-financial-calendar/edit-financial-calendar.component.ts
EditFinancialCalendarComponentonOpenYearDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/general-setting/components/edit-financial-calendar/edit-financial-calendar.component.ts
EditRolesUsersComponentonAddDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/edit-roles-users/edit-roles-users.component.ts
EditRolesUsersComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/edit-roles-users/edit-roles-users.component.ts
EditRolesUsersComponentonViewPermissionsOpen the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/edit-roles-users/edit-roles-users.component.ts
EtaConnectionSettingsComponentonConfirmDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-connection-settings/eta-connection-settings.component.ts
EtaConnectionSettingsComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-connection-settings/eta-connection-settings.component.ts
EtaSendInvoiceHistoryComponentonBackToListLeave or close without persisting; warn when the current form has unsaved changes and restore the prior list/filter context.apps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-send-invoice/eta-send-invoice-history/eta-send-invoice-history.component.ts
EtaSendInvoiceHistoryComponentonViewErrorOpen the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data.apps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-send-invoice/eta-send-invoice-history/eta-send-invoice-history.component.ts
EtaSendInvoicesListComponentonSendAllDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-send-invoice/eta-send-invoices-list/eta-send-invoices-list.component.ts
EtaSendInvoicesListComponentonSendRowDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-send-invoice/eta-send-invoices-list/eta-send-invoices-list.component.ts
EtaSendInvoicesListComponentonStatusHistoryDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-send-invoice/eta-send-invoices-list/eta-send-invoices-list.component.ts
EtaSendInvoicesListComponentonUpdateStatusBulkDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-send-invoice/eta-send-invoices-list/eta-send-invoices-list.component.ts
EtaSendInvoicesListComponentonUpdateStatusRowDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/ETA/eta-send-invoice/eta-send-invoices-list/eta-send-invoices-list.component.ts
FinancialCalendarListComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/erpHome/src/app/remote-entry/general-setting/pages/financial-calendar/financial-calendar-list/financial-calendar-list.component.ts
FinancialCalendarListComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/erpHome/src/app/remote-entry/general-setting/pages/financial-calendar/financial-calendar-list/financial-calendar-list.component.ts
GenerateAppTokenComponentonSaveValidate the concrete form and line collection, prevent duplicate submission, persist once, show API field/business errors in context, and navigate/refresh only after success.apps/erpHome/src/app/remote-entry/admin/pages/generate-app-token/pages/generate-app-token/generate-app-token.component.ts
RegisterAccountComponenteditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/erpHome/src/app/remote-entry/whatsapp-integration/pages/register-account/register-account.component.ts
RegisterAccountComponentonSaveOrEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/erpHome/src/app/remote-entry/whatsapp-integration/pages/register-account/register-account.component.ts
RegisterAccountComponentopenConfigDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/whatsapp-integration/pages/register-account/register-account.component.ts
RegisterAccountComponentstartIntegrateDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/whatsapp-integration/pages/register-account/register-account.component.ts
RolesComponentonAddDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/roles/roles.component.ts
RolesComponentonDuplicateDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/roles/roles.component.ts
RolesComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/roles/roles.component.ts
RolesPermissionsComponentonModuleSelectDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/roles-permissions/roles-permissions.component.ts
RolesPermissionsComponentonServiceSelectDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/roles-permissions/roles-permissions.component.ts
RolesUsersComponentonAddDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/roles-users/roles-users.component.ts
RolesUsersComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/roles-users/roles-users.component.ts
TagListComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/erpHome/src/app/remote-entry/general-setting/pages/tags/tag-list/tag-list.component.ts
TagListComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/erpHome/src/app/remote-entry/general-setting/pages/tags/tag-list/tag-list.component.ts
UserProfileComponentupdateProfileDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/general-setting/pages/user-profile/user-profile.component.ts
UserSettingsListComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/erpHome/src/app/remote-entry/admin/pages/UserSettings/user-settings-list/user-settings-list.component.ts
UserSettingsListComponentonViewOpen the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data.apps/erpHome/src/app/remote-entry/admin/pages/UserSettings/user-settings-list/user-settings-list.component.ts
VatReportComponentprintSummaryGenerate the printout for the selected record and authorized branch/tenant; use posted/current values and surface print, template, ZATCA/ETA, or popup failures without changing transaction state.apps/erpHome/src/app/remote-entry/reports/components/vat-report/vat-report.component.ts
VatReportComponentprintTableGenerate the printout for the selected record and authorized branch/tenant; use posted/current values and surface print, template, ZATCA/ETA, or popup failures without changing transaction state.apps/erpHome/src/app/remote-entry/reports/components/vat-report/vat-report.component.ts
VatReportComponentrouteToTransactionDetailDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/reports/components/vat-report/vat-report.component.ts
ViewIntegrationDetailsComponentactivateDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/whatsapp-integration/pages/view-integration-details/view-integration-details.component.ts
ViewIntegrationDetailsComponentcancelActivationLeave or close without persisting; warn when the current form has unsaved changes and restore the prior list/filter context.apps/erpHome/src/app/remote-entry/whatsapp-integration/pages/view-integration-details/view-integration-details.component.ts
ViewUserSettingsComponentonCopySettingsDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/UserSettings/view-user-settings/view-user-settings.component.ts
ZatcaInvoicesComponentonSendAllDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/reports/pages/zatca-invoices/zatca-invoices.component.ts
ZatcaInvoicesComponentonSendRowDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/reports/pages/zatca-invoices/zatca-invoices.component.ts

Page-specific frontend acceptance criteria

  1. (module default) - Dashboard: Load authorized summary values consistently with source reports, support exposed date/branch filters, and handle empty/error states. Security observed: No route-level permission/guard found in source window
  2. (module default) - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.Role_List; Guards: PolicyAuthGuard
  3. (module default) - Report/print: Expose documented filters, validation, empty/loading/error states, authorized results, totals, drill-through, print, and export behavior where present. Security observed: Permission: AppGeneralSettingsPermissions.ZatcaIntegrationReport_List; Guards: PolicyAuthGuard
  4. (module default) - View/detail: Load an authorized immutable/detail representation with status-aware actions, linked records, print/export where exposed, and not-found/forbidden handling. Security observed: Permission: AppGeneralSettingsPermissions.ZatcaSendingOptions_View,; Guards: PolicyAuthGuard
  5. add - Add: Render permitted fields, required indicators, defaults, dependent lookups, validation, Save/Cancel, loading, success, and API-error states. Security observed: Permission: AppGeneralSettingsPermissions.Role_Add; Guards: PolicyAuthGuard
  6. admin - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: No route-level permission/guard found in source window
  7. currency-definition - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.CurrencyDefinition_List; Guards: PolicyAuthGuard
  8. dashboard - Dashboard: Load authorized summary values consistently with source reports, support exposed date/branch filters, and handle empty/error states. Security observed: No route-level permission/guard found in source window
  9. edit - Edit: Load the identified record, enforce state/permission field locks, preserve concurrency identity, validate changes, and return without losing filters. Security observed: Permission: AppGeneralSettingsPermissions.ZatcaSendingOptions_Edit,; Guards: PolicyAuthGuard
  10. edit/:id - Edit: Load the identified record, enforce state/permission field locks, preserve concurrency identity, validate changes, and return without losing filters. Security observed: Permission: AppGeneralSettingsPermissions.PaymentTerms_Edit; Guards: PolicyAuthGuard
  11. eta-invoices - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.EtaInvoices_List; Guards: PolicyAuthGuard
  12. generate-app-token - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.GenerateAppToken_View; Guards: PolicyAuthGuard
  13. history/:invoiceId - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.EtaInvoices_List; Guards: PolicyAuthGuard
  14. home-help-page - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: No route-level permission/guard found in source window
  15. integration - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: No route-level permission/guard found in source window
  16. integration-setting - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.IntegrationSetting_View,; Guards: PolicyAuthGuard
  17. login - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Guards: AuthGuard , moduleLicenseGuard
  18. login-redirect - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Guards: AuthGuard , moduleLicenseGuard
  19. logout - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Guards: AuthGuard , moduleLicenseGuard
  20. logout-redirect - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Guards: AuthGuard , moduleLicenseGuard
  21. masterdata - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: No route-level permission/guard found in source window
  22. my-profile - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.User_Profile; Guards: PolicyAuthGuard
  23. payment-term - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.PaymentTerms_List; Guards: PolicyAuthGuard
  24. reports - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: No route-level permission/guard found in source window
  25. requests - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.TaxDefinition_List
  26. sequence - Sequence: Show current numbering scope and permit only authorized, valid sequence configuration without retroactively renumbering posted documents. Security observed: Permission: 'ALL_PERMISSIONS'; Guards: PolicyAuthGuard
  27. setting - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.WhatsAppIntegration_View , AppGeneralSettingsPermissions.WhatsAppIntegration_Edit; Guards: PolicyAuthGuard
  28. signature-service-setting - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.SignatureServiceSetting_View,; Guards: PolicyAuthGuard
  29. un-authorized - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Guards: AuthGuard , moduleLicenseGuard
  30. vat-report - Report/print: Expose documented filters, validation, empty/loading/error states, authorized results, totals, drill-through, print, and export behavior where present. Security observed: Permission: AppGeneralSettingsPermissions.ZatcaIntegrationReport_List; Guards: PolicyAuthGuard
  31. view/:id - View/detail: Load an authorized immutable/detail representation with status-aware actions, linked records, print/export where exposed, and not-found/forbidden handling. Security observed: Permission: AppGeneralSettingsPermissions.PaymentTerms_View; Guards: PolicyAuthGuard
  32. whatsapp-integration-settings - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: No route-level permission/guard found in source window
  33. workflowconfig - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.User_Profile; Guards: PolicyAuthGuard
  34. zatca-invoices - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.ZatcaIntegrationReport_List; Guards: PolicyAuthGuard
  35. zatca-sending-options - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.ZatcaSendingOptions_View; Guards: PolicyAuthGuard

Internal Documentation — Microtec