Appearance
Import and Migration
| Backlog field | Value |
|---|---|
| Story ID | AP-SHR-001 |
| Epic | Shared Platform |
| Story type | Business workflow |
| Review status | Draft - business analyst and business owner review required |
| Source evidence | AppsPortal.Apis controller, application command/query handlers, validators, domain entities, and matching MFE workflow where available |
| Last source review | 2026-07-10 |
User story
As implementation administrators, I want to validate and import supported business data in controlled batches so that large setup or migration work is traceable and does not partially corrupt data.
Acceptance criteria
- Only authorized users can view or execute the feature's actions.
- Required business data, active dependencies, tenant/branch scope, and current document state are validated.
- Invalid requests return actionable validation errors without applying a partial change.
- Search, list, view, print, and export operations use the same authorized business scope.
- Material create, edit, status, approval, posting, reversal, and integration actions are auditable where applicable.
- Financial or stock effects are applied atomically and no more than once.
Business rules
Required
Supported entity/type, authorized tenant, valid template/schema, and file are required.
Optional or conditional
Dry run, update mode, mappings, and batch size are optional/permissioned.
Action behavior
Validate stages row/entity errors; Confirm commits eligible data according to the import strategy.
Blocking rule or downstream effect
Failed rows never silently commit; reruns use stable identity to avoid duplicates.
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/page | Component | Mode | Route permission/guard | Mapping confidence | Source |
|---|---|---|---|---|---|
| (module default) | () => import('erpHome/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:6 |
| (module default) | CompanyAddresComponent | Add | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:43 |
| (module default) | LayoutComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:23 |
| (module default) | LayoutComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/erp-user/erp-user.module.ts:11 |
| (module default) | LayoutComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/subscription/subscription.module.ts:17 |
| (module default) | LayoutComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/user/user.module.ts:17 |
| (module default) | LayoutComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/routes.ts:13 |
| (module default) | ListAppsComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:20 |
| (module default) | MySubscriptionsComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/subscription/subscription.module.ts:21 |
| (module default) | MySubscriptionsComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/routes.ts:17 |
| ** | NotFoundComponent | List/navigation | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/routes.ts:33 |
| accept-invitation/:invitationId | PaymentLinkComponent } | List/navigation | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/routes.ts:27 |
| accounting | () => import('accounting/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:35 |
| address | CompanyAddresComponent | Add | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:47 |
| app-detail/:id | AppDetailsComponent | View/detail | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:28 |
| app-store | LayoutComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:16 |
| branches | CompanyBranchesComponent | List/navigation | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:63 |
| cart | CartComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:36 |
| cartItemDetail/:id | CartItemDetailComponent | View/detail | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:52 |
| company/:id | CompaniesListComponent | View/detail | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:27 |
| company/edit/:id | EditCompanyComponent | Edit | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:35 |
| confirm-online-payment | NotFoundComponent | List/navigation | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/routes.ts:30 |
| contact | CompanyContactComponent | List/navigation | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:55 |
| distribution | () => import('distribution/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:40 |
| erp | () => import('erpHome/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:11 |
| erpusers/:id | ERPUserComponent | View/detail | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/erp-user/erp-user.module.ts:15 |
| finance | () => import('finance/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:25 |
| fixed-assets | () => import('fixedAssets/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:30 |
| hierarchy | CompanyHierarchyComponent | List/navigation | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:59 |
| hr | () => import('hr/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:20 |
| inventory | () => import('inventory/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:15 |
| legal | CompanyLegalComponent | List/navigation | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:51 |
| manage-apps/:id | ManageAppsComponent | View/detail | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/subscription/subscription.module.ts:34 |
| my-subscriptions | MySubscriptionsComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/subscription/subscription.module.ts:26 |
| payment-form/:checkoutId/:integrity | ConfirmOnlinePaymentComponent } | List/navigation | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/routes.ts:29 |
| payment-link/:id | PaymentFormComponent } | View/detail | No route-level permission/guard found in source window | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/routes.ts:28 |
| paymentSuccesful | PaymentSuccesfulComponent | List/navigation | Guards: AuthGuard | Module-level supporting artifact | apps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:44 |
| purchase | () => import('purchase/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:45 |
| sales | () => import('sales/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:50 |
| templates | () => import('templates/Module').then((m) => m!.RemoteEntryModule) | Import | Guards: AuthGuard | Feature token match | apps/dashboard/src/app/app.routes.ts:55 |
Observed frontend fields and validation
| Component | Control | Observed frontend rule | Component source |
|---|---|---|---|
| CompanyAddresComponent | address | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts |
| CompanyAddresComponent | city | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts |
| CompanyAddresComponent | countryCode | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts |
| CompanyAddresComponent | currencyId | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts |
| CompanyAddresComponent | latitude | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts |
| CompanyAddresComponent | longitude | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts |
| CompanyAddresComponent | region | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts |
| CompanyContactComponent | companyAddress | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | companyEmail | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | companyLogo | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | companyName | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | contactPersonal | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | contactPersonalEmail | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | contactPersonalMobileNumber | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | contactPersonalMobileNumberCode | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | contactPersonalPosition | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | mobileNumber | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | mobileNumberCode | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyLegalComponent | additionalStreetName | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | buildingNumber | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | businessCategory | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | cityName | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | citySubDivisionName | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | commercialId | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | companyEmail | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | companyName | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | organization | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | organizationUnit | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | postalZone | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | registeredAddress | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | registrationName | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | streetName | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | taxId | Required in component validator | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| PaymentLinkComponent | billingCity | Required in component validator | apps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts |
| PaymentLinkComponent | billingCountry | Required in component validator | apps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts |
| PaymentLinkComponent | billingPostcode | Required in component validator | apps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts |
| PaymentLinkComponent | billingState | Required in component validator | apps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts |
| PaymentLinkComponent | billingStreet1 | Required in component validator | apps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts |
| PaymentLinkComponent | billingStreet2 | Visible control; optional or API-dependent | apps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts |
Observed frontend actions
| Component | Click action/handler | Business review requirement | Component source |
|---|---|---|---|
| AppDetailsComponent | addToCart | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/app-store/pages/app-details/app-details.component.ts |
| AppDetailsComponent | clickImg | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/app-store/pages/app-details/app-details.component.ts |
| CartComponent | checkout | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/app-store/pages/cart/cart.component.ts |
| CartComponent | itemFromCartDetail | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/app-store/pages/cart/cart.component.ts |
| CartComponent | removeItemFromCart | Available 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/bussinessOwners/src/app/remote-entry/modules/app-store/pages/cart/cart.component.ts |
| CompaniesListComponent | routeToEdit | Open 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/bussinessOwners/src/app/remote-entry/modules/company/pages/companies-list/companies-list.component.ts |
| CompanyAddresComponent | onDiscard | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts |
| CompanyAddresComponent | onSubmit | Validate 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/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts |
| CompanyBranchesComponent | addBranch | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-branches/company-branches.component.ts |
| CompanyBranchesComponent | deleteBranch | Available 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/bussinessOwners/src/app/remote-entry/modules/company/pages/company-branches/company-branches.component.ts |
| CompanyBranchesComponent | editBranch | Open 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/bussinessOwners/src/app/remote-entry/modules/company/pages/company-branches/company-branches.component.ts |
| CompanyContactComponent | onDiscard | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyContactComponent | onSubmit | Validate 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/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts |
| CompanyLegalComponent | onDiscard | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| CompanyLegalComponent | onSubmit | Validate 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/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts |
| ConfirmOnlinePaymentComponent | ConfirmOnlinePayment | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/pages/payment-link/confirm-online-payment/confirm-online-payment.component.ts |
| ConfirmOnlinePaymentComponent | onContactSupport | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/pages/payment-link/confirm-online-payment/confirm-online-payment.component.ts |
| ConfirmOnlinePaymentComponent | onNavigateToErp | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/pages/payment-link/confirm-online-payment/confirm-online-payment.component.ts |
| EditCompanyComponent | activeTag | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/edit-company/edit-company.component.ts |
| EditCompanyComponent | navigateToAddress | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/edit-company/edit-company.component.ts |
| EditCompanyComponent | navigateToBranches | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/edit-company/edit-company.component.ts |
| EditCompanyComponent | navigateToContact | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/edit-company/edit-company.component.ts |
| EditCompanyComponent | navigateToHierarchy | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/edit-company/edit-company.component.ts |
| EditCompanyComponent | navigateToLegal | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/company/pages/edit-company/edit-company.component.ts |
| EditCompanyComponent | toggleEditMode | Open 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/bussinessOwners/src/app/remote-entry/modules/company/pages/edit-company/edit-company.component.ts |
| ERPUserComponent | editUser | Open 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/bussinessOwners/src/app/remote-entry/modules/erp-user/pages/erp-user-list/erp-users.component.ts |
| ERPUserComponent | openInviteERPUser | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/erp-user/pages/erp-user-list/erp-users.component.ts |
| ERPUserComponent | resendInvitation | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/erp-user/pages/erp-user-list/erp-users.component.ts |
| LayoutHeaderComponent | cardDrob | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/layout/layout-header/layout-header.component.ts |
| LayoutHeaderComponent | logout | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/layout/layout-header/layout-header.component.ts |
| LayoutHeaderComponent | onToggleSidebar | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/layout/layout-header/layout-header.component.ts |
| LayoutHeaderComponent | toggleLanguage | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/layout/layout-header/layout-header.component.ts |
| LayoutSidebarComponent | setActive | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/layout/layout-sidebar/layout-sidebar.component.ts |
| LayoutSidebarComponent | toggleSidebar | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/layout/layout-sidebar/layout-sidebar.component.ts |
| LayoutSidebarComponent | toggleSubMenu | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/layout/layout-sidebar/layout-sidebar.component.ts |
| ListAppsComponent | addToCart | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/app-store/pages/list-apps/list-apps.component.ts |
| ListAppsComponent | routeToDetails | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/app-store/pages/list-apps/list-apps.component.ts |
| ListAppsComponent | toggelview | Open 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/bussinessOwners/src/app/remote-entry/modules/app-store/pages/list-apps/list-apps.component.ts |
| ManageAppsComponent | card | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/subscription/pages/manage-apps/manage-apps.component.ts |
| ManageAppsComponent | renew | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/subscription/pages/manage-apps/manage-apps.component.ts |
| ManageAppsComponent | routeToDetails | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/subscription/pages/manage-apps/manage-apps.component.ts |
| ManageAppsComponent | row | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/subscription/pages/manage-apps/manage-apps.component.ts |
| ManageAppsComponent | toggelview | Open 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/bussinessOwners/src/app/remote-entry/modules/subscription/pages/manage-apps/manage-apps.component.ts |
| MySubscriptionsComponent | navigateToErp | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/subscription/pages/my-subscriptions/my-subscriptions.component.ts |
| MySubscriptionsComponent | navigateToManageApp | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/subscription/pages/my-subscriptions/my-subscriptions.component.ts |
| MySubscriptionsComponent | navigateToManageCompany | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/subscription/pages/my-subscriptions/my-subscriptions.component.ts |
| MySubscriptionsComponent | navigateToManageUser | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/subscription/pages/my-subscriptions/my-subscriptions.component.ts |
| MySubscriptionsComponent | navigateToWorkflow | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/subscription/pages/my-subscriptions/my-subscriptions.component.ts |
| MySubscriptionsComponent | openSubdomainModal | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/bussinessOwners/src/app/remote-entry/modules/subscription/pages/my-subscriptions/my-subscriptions.component.ts |
Page-specific frontend acceptance criteria
- (module default) - Add: Render permitted fields, required indicators, defaults, dependent lookups, validation, Save/Cancel, loading, success, and API-error states. Security observed: No route-level permission/guard found in source window
- (module default) - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard
- (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: Guards: AuthGuard
- **** - 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
- accept-invitation/:invitationId - 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
- accounting - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard
- address - Add: Render permitted fields, required indicators, defaults, dependent lookups, validation, Save/Cancel, loading, success, and API-error states. Security observed: No route-level permission/guard found in source window
- app-detail/: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: Guards: AuthGuard
- app-store - 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
- branches - 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
- cart - 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
- cartItemDetail/: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: Guards: AuthGuard
- company/: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: Guards: AuthGuard
- company/edit/:id - Edit: Load the identified record, enforce state/permission field locks, preserve concurrency identity, validate changes, and return without losing filters. Security observed: Guards: AuthGuard
- confirm-online-payment - 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
- contact - 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
- distribution - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard
- erp - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard
- erpusers/: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: Guards: AuthGuard
- finance - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard
- fixed-assets - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard
- hierarchy - 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
- hr - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard
- inventory - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard
- legal - 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
- manage-apps/: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: Guards: AuthGuard
- my-subscriptions - 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
- payment-form/:checkoutId/:integrity - 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
- payment-link/: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: No route-level permission/guard found in source window
- paymentSuccesful - 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
- purchase - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard
- sales - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard
- templates - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: AuthGuard