Skip to content

Import and Migration

Backlog fieldValue
Story IDAP-SHR-001
EpicShared Platform
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 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

  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

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/pageComponentModeRoute permission/guardMapping confidenceSource
(module default)() => import('erpHome/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:6
(module default)CompanyAddresComponentAddNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:43
(module default)LayoutComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:23
(module default)LayoutComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/erp-user/erp-user.module.ts:11
(module default)LayoutComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/subscription/subscription.module.ts:17
(module default)LayoutComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/user/user.module.ts:17
(module default)LayoutComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/routes.ts:13
(module default)ListAppsComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:20
(module default)MySubscriptionsComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/subscription/subscription.module.ts:21
(module default)MySubscriptionsComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/routes.ts:17
**NotFoundComponentList/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/routes.ts:33
accept-invitation/:invitationIdPaymentLinkComponent }List/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/routes.ts:27
accounting() => import('accounting/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:35
addressCompanyAddresComponentAddNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:47
app-detail/:idAppDetailsComponentView/detailGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:28
app-storeLayoutComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:16
branchesCompanyBranchesComponentList/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:63
cartCartComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:36
cartItemDetail/:idCartItemDetailComponentView/detailGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:52
company/:idCompaniesListComponentView/detailGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:27
company/edit/:idEditCompanyComponentEditGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:35
confirm-online-paymentNotFoundComponentList/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/routes.ts:30
contactCompanyContactComponentList/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:55
distribution() => import('distribution/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:40
erp() => import('erpHome/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:11
erpusers/:idERPUserComponentView/detailGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/erp-user/erp-user.module.ts:15
finance() => import('finance/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:25
fixed-assets() => import('fixedAssets/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:30
hierarchyCompanyHierarchyComponentList/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:59
hr() => import('hr/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:20
inventory() => import('inventory/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:15
legalCompanyLegalComponentList/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/company/company.module.ts:51
manage-apps/:idManageAppsComponentView/detailGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/subscription/subscription.module.ts:34
my-subscriptionsMySubscriptionsComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/subscription/subscription.module.ts:26
payment-form/:checkoutId/:integrityConfirmOnlinePaymentComponent }List/navigationNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/routes.ts:29
payment-link/:idPaymentFormComponent }View/detailNo route-level permission/guard found in source windowModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/routes.ts:28
paymentSuccesfulPaymentSuccesfulComponentList/navigationGuards: AuthGuardModule-level supporting artifactapps/bussinessOwners/src/app/remote-entry/modules/app-store/app-store.module.ts:44
purchase() => import('purchase/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:45
sales() => import('sales/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:50
templates() => import('templates/Module').then((m) => m!.RemoteEntryModule)ImportGuards: AuthGuardFeature token matchapps/dashboard/src/app/app.routes.ts:55

Observed frontend fields and validation

ComponentControlObserved frontend ruleComponent source
CompanyAddresComponentaddressVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts
CompanyAddresComponentcityVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts
CompanyAddresComponentcountryCodeVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts
CompanyAddresComponentcurrencyIdVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts
CompanyAddresComponentlatitudeVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts
CompanyAddresComponentlongitudeVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts
CompanyAddresComponentregionVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-addres/company-addres.component.ts
CompanyContactComponentcompanyAddressVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyContactComponentcompanyEmailVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyContactComponentcompanyLogoVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyContactComponentcompanyNameVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyContactComponentcontactPersonalVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyContactComponentcontactPersonalEmailVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyContactComponentcontactPersonalMobileNumberVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyContactComponentcontactPersonalMobileNumberCodeVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyContactComponentcontactPersonalPositionVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyContactComponentmobileNumberVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyContactComponentmobileNumberCodeVisible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-contact/company-contact.component.ts
CompanyLegalComponentadditionalStreetNameRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentbuildingNumberRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentbusinessCategoryRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentcityNameRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentcitySubDivisionNameRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentcommercialIdRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentcompanyEmailRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentcompanyNameRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentorganizationRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentorganizationUnitRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentpostalZoneRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentregisteredAddressRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentregistrationNameRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponentstreetNameRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
CompanyLegalComponenttaxIdRequired in component validatorapps/bussinessOwners/src/app/remote-entry/modules/company/pages/company-legal/company-legal.component.ts
PaymentLinkComponentbillingCityRequired in component validatorapps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts
PaymentLinkComponentbillingCountryRequired in component validatorapps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts
PaymentLinkComponentbillingPostcodeRequired in component validatorapps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts
PaymentLinkComponentbillingStateRequired in component validatorapps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts
PaymentLinkComponentbillingStreet1Required in component validatorapps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts
PaymentLinkComponentbillingStreet2Visible control; optional or API-dependentapps/bussinessOwners/src/app/remote-entry/pages/payment-link/payment-link.component.ts

Observed frontend actions

ComponentClick action/handlerBusiness review requirementComponent source
AppDetailsComponentaddToCartDocument 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
AppDetailsComponentclickImgDocument 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
CartComponentcheckoutDocument 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
CartComponentitemFromCartDetailDocument 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
CartComponentremoveItemFromCartAvailable 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
CompaniesListComponentrouteToEditOpen 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
CompanyAddresComponentonDiscardDocument 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
CompanyAddresComponentonSubmitValidate 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
CompanyBranchesComponentaddBranchDocument 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
CompanyBranchesComponentdeleteBranchAvailable 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
CompanyBranchesComponenteditBranchOpen 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
CompanyContactComponentonDiscardDocument 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
CompanyContactComponentonSubmitValidate 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
CompanyLegalComponentonDiscardDocument 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
CompanyLegalComponentonSubmitValidate 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
ConfirmOnlinePaymentComponentConfirmOnlinePaymentDocument 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
ConfirmOnlinePaymentComponentonContactSupportDocument 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
ConfirmOnlinePaymentComponentonNavigateToErpDocument 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
EditCompanyComponentactiveTagDocument 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
EditCompanyComponentnavigateToAddressDocument 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
EditCompanyComponentnavigateToBranchesDocument 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
EditCompanyComponentnavigateToContactDocument 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
EditCompanyComponentnavigateToHierarchyDocument 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
EditCompanyComponentnavigateToLegalDocument 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
EditCompanyComponenttoggleEditModeOpen 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
ERPUserComponenteditUserOpen 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
ERPUserComponentopenInviteERPUserDocument 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
ERPUserComponentresendInvitationDocument 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
LayoutHeaderComponentcardDrobDocument 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
LayoutHeaderComponentlogoutDocument 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
LayoutHeaderComponentonToggleSidebarDocument 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
LayoutHeaderComponenttoggleLanguageDocument 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
LayoutSidebarComponentsetActiveDocument 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
LayoutSidebarComponenttoggleSidebarDocument 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
LayoutSidebarComponenttoggleSubMenuDocument 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
ListAppsComponentaddToCartDocument 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
ListAppsComponentrouteToDetailsDocument 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
ListAppsComponenttoggelviewOpen 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
ManageAppsComponentcardDocument 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
ManageAppsComponentrenewDocument 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
ManageAppsComponentrouteToDetailsDocument 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
ManageAppsComponentrowDocument 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
ManageAppsComponenttoggelviewOpen 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
MySubscriptionsComponentnavigateToErpDocument 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
MySubscriptionsComponentnavigateToManageAppDocument 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
MySubscriptionsComponentnavigateToManageCompanyDocument 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
MySubscriptionsComponentnavigateToManageUserDocument 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
MySubscriptionsComponentnavigateToWorkflowDocument 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
MySubscriptionsComponentopenSubdomainModalDocument 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

  1. (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
  2. (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
  3. (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
  4. **** - 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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

Internal Documentation — Microtec