This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a change to branch chore/fineract-spec-sync
in repository https://gitbox.apache.org/repos/asf/fineract-backoffice-ui.git
from 82d3e333 chore(api): sync the Fineract OpenAPI spec and regenerate the
client
add 74bf4f4b Merge pull request #647 from apache/chore/fineract-spec-sync
add d3ba2288 fix: make label-backed UI text localizable
add 398ddf41 Merge pull request #649 from
vianmangal/fix/issue-627-i18n-labels
add e785e0ea fix(audit-logs): improve table layout and search
add fdfc2ea8 test(audit-logs): add table behavior coverage
add a122d6c8 fix(status-badge): add audit result colours
add 723aac94 test(status-badge): cover audit result colours
add 1f73f8d0 Merge remote-tracking branch 'upstream/main' into
feat/582-audit-logs-ui
add f4ef2aae refactor(status-badge): match statuses against keyword lists
add cc1d9bb1 Merge remote-tracking branch 'upstream/main' into
feat/582-audit-logs-ui
add acb9e1e8 Merge pull request #641 from
shivaansh0610-LUFFY/feat/582-audit-logs-ui
add 432254fb fix: use array date formatter for floating rates
add 71202f98 Merge pull request #648 from
1cbyc/1cbyc/issue-257-products-date-format
add 8af76750 feat(config): add OIDC login feature flag
add dd369ec2 test(config): cover OIDC login flag
add 1d3d9575 feat(login): add provisional OIDC sign-in option
add 3b78d961 feat(i18n): add OIDC login labels
add 954c030a Merge remote-tracking branch 'upstream/main' into
feat/370-oidc-login-ui
add 7bdb3caf test(login): add e2e coverage for the identity-provider
button (#370)
add 0af5623e Merge pull request #643 from
shivaansh0610-LUFFY/feat/370-oidc-login-ui
add 9a6ed9c2 feat(loan): add delinquency action model
add eaf9c6e5 feat(loan): add delinquency pause dialog
add 590df741 feat(loan): add delinquency pause and resume actions
add 53b7629c test(loan): cover delinquency actions
add 46f2e790 test(loan): add delinquency action e2e coverage
add d976842b Merge pull request #650 from
shivaansh0610-LUFFY/feat/505-loan-delinquency-actions
add 5c42ce92 chore(deps): move ngx-translate to 18
add 3a2c9c67 refactor(i18n): update ngx-translate integration
add 0f2f01e5 refactor(i18n): replace TranslateModule imports
add e21bdd9e test(i18n): migrate translation test providers
add 32f943d4 refactor(i18n): migrate app component translation imports
add 23cba428 test(i18n): migrate app component translation testing
add 827a0ac3 Merge pull request #654 from
shivaansh0610-LUFFY/chore/167-ngx-translate-http-loader-18
add 022e7022 ci(i18n): check every label literal, not only ColumnDef files
add 1a4543f2 ci(api): measure how far the generated client reaches, and
stop it spreading
add b47f28f1 fix(accounting): show whether a closed period is closed
add dd6b7118 docs: record the generated-client boundary and how to upgrade
a dependency
add 04421a63 ci(i18n): catch English written straight into a template
add 78064443 refactor(offices): convert Fineract's array dates once, not
at every call site
add ba4f563f Merge pull request #651 from Aman-Mittal/arch/adapter-coverage
add 8ab7c1eb refactor(notes): take the generated client out of the note
screens
add 7e030f5c Merge pull request #656 from
Aman-Mittal/refactor/shrink-api-baseline
add fce4a119 fix(i18n): add template translation keys and test helper
add 034ce23d fix(i18n): translate accounting template text
add 72f3e474 fix(i18n): translate campaign and integration text
add 835fdaf5 fix(i18n): translate loan and savings template text
add 2d122f5b fix(i18n): translate security settings and transfer text
add 6abdedf3 fix(i18n): use the adapter pipe in the closure form and keep
new specs off the generated client
add 03533bfc Merge pull request #655 from
shivaansh0610-LUFFY/fix/652-translate-template-text
add 40a10db5 test(e2e): share one seeded-user sign-in helper across the
RBAC specs
add 50dbed2e test(e2e): let a seeded user belong to an office other than
Head Office
add 37fc6257 fix(clients): fetch a client's accounts only once the client
itself has loaded
add 36a95ee8 fix(ui): tell a refused list from a broken one, and withhold
the futile retry
add f4afc6cf fix(offices): withhold the edit control from a user who
cannot update an office
add 4072b71b test(rbac): cover office scope, an account granted nothing,
and rbacEnabled false
add acb2842f Merge pull request #657 from
Aman-Mittal/test/rbac-role-coverage
add 6dcd7ecd test(e2e): split the journal-entry seed into reusable parts
add 13a9a581 test(accounting): cover period closures against real Fineract
add aab51441 Merge pull request #658 from
Aman-Mittal/test/backend-e2e-coverage
add ef8603d2 fix(clients): withhold an account link the reader cannot
follow
add dc4f9299 fix(organization): gate the office transaction actions and
show a refused load
add 9c109fb6 test(rbac): cover controls whose only destination is Access
Denied
add 910ef443 Merge pull request #660 from
Aman-Mittal/fix/restricted-user-dead-ends
add 6cf52a22 fix(e2e): attribute change-detection errors to the URL they
fired on
add 62f68c95 Merge pull request #659 from
shivaansh0610-LUFFY/fix/572-ng0100-cd-investigation
add 10d6328b test(e2e): stop two backend specs depending on a page they
can no longer reach
add 802b4cfb Merge pull request #661 from
Aman-Mittal/fix/backend-specs-reused-instance
add 737e2139 feat(shared): add a permission check for deciding what a
template offers
add 011ecd91 fix(rbac): withhold cross-domain links a reader cannot follow
add d51a7759 test(rbac): cover the group member link, and seed a group
that has one
add 1819fe6e Merge pull request #662 from
Aman-Mittal/fix/cross-domain-dead-end-links
add 3bbe9a63 fix(loans,savings): withhold transaction controls the
platform will refuse
add 6d335e9c Merge pull request #667 from
Aman-Mittal/fix/status-blind-transaction-controls
add 2d30ce8c chore(i18n): move nine feature areas onto the appTranslate
adapter pipe
add 9eafbf95 chore(i18n): move the remaining single-import components onto
appTranslate
add e6596a21 Merge pull request #668 from
Aman-Mittal/chore/i18n-adapter-batch-1
add c24e12cf fix(collection-sheet,data-table): repair the staff picker,
the empty sheet and the search help icon
add 6b423c99 test(collection-sheet): drive the spec through HTTP instead
of service spies
add bf2e0753 Merge pull request #669 from
Aman-Mittal/fix/collection-sheet-and-search-layout
add 59c32d61 docs: point contributors at the Fineract dev list and Matrix
rooms
add 8bcdf93e Merge pull request #673 from
Aman-Mittal/docs/community-channels
add 28e35294 fix(i18n): translate the last five hardcoded list headings
add ee58276f fix(i18n): label the recurring deposit and share product
lists as products
add 6fcff6f4 Merge pull request #674 from
opensource-joe/fix/388-i18n-headings
add 065cc175 fix(loan): display missing capitalized income fields
add 3977a059 test(loan): cover capitalized income fields
add 461f2702 feat(i18n): add capitalized income labels
add e6901566 Merge pull request #675 from
shivaansh0610-LUFFY/fix/672-capitalized-income
add 330064d6 test(e2e): pin the transaction controls to the states the
platform accepts
add 3e50a626 Merge pull request #676 from
Aman-Mittal/test/transaction-control-gating-e2e
add 0af9e163 refactor(loans): put loan and loan-transaction behind API
contracts
add c7d4f153 Merge pull request #677 from
Aman-Mittal/refactor/loan-api-adapters
add 5fe19cc7 test(e2e): cover the collection sheet filter against a real
Fineract
add 3e32f1c0 Merge pull request #681 from
Aman-Mittal/test/collection-sheet-e2e
add 40a699ae refactor(organization): put staff and holidays behind API
contracts
add 9a5f7d4d Merge pull request #686 from
Aman-Mittal/refactor/organization-api-adapters
add 5b84d664 refactor(i18n): migrate working capital to appTranslate
add 4bcf0c2d refactor(i18n): migrate system features to appTranslate
add 300e5e48 chore(lint): remove migrated ngx-translate suppressions
add 72d95861 Merge pull request #685 from
shivaansh0610-LUFFY/fix/683-i18n-adapter-migration
add e81bc383 refactor(lint): clear unicorn/no-array-sort baseline
violations
add 932efbca Merge pull request #688 from
rk-roshan-kr/fix/679-clear-unicorn-no-array-sort
add 4b15494b feat(api): add teller API contract and adapter
add 4a71967a refactor(tellers): migrate teller and cashier screens to API
boundary
add 6c8726e8 test(tellers): migrate cashier transaction coverage
add 5ee49f2b chore(lint): prune teller API suppressions and update docs
add a0fde51b Merge pull request #689 from
shivaansh0610-LUFFY/refactor/687-teller-api-boundary
add 3ac5dc74 fix(storage): clear no restricted globals baseline in tests
add 89f91480 Merge pull request #690 from
msranjana/fix/678-storage-test-baseline
add 5ee38b29 fix(security): send permission codes in Fineract's own
spelling
add 62882e8e test(e2e): assert refused loan actions as disabled, not absent
add e547a112 Merge pull request #692 from
Aman-Mittal/feat/non-admin-loan-flows-and-security-adapters
add 4d493fd5 test(e2e): drop an unused import from the non-admin loan
flows spec
add b6cc8f2f Merge pull request #694 from
Aman-Mittal/feat/non-admin-loan-flows-and-security-adapters
add a3004df1 fix(rbac): gate transaction routes on the code each command
needs
add 4a8016f0 fix(rbac): name permission codes the platform actually defines
add 7afc70ef test(e2e): cover savings duties under non-admin roles, and
invert the loan gate assertions
add e8aac9b6 test(e2e): reopen the savings view after an action, which
redirects to the list
add c2f0bdd0 fix(savings): require the payment type a deposit cannot be
made without
add 2c27faaf fix(scripts): stop disabling certificate validation to
refresh the snapshot
add 30d9b91a fix(ci): download each comment artifact by name, so the
diagram comment appears
add 7bb71137 test: retarget the office transactions dead-end at the door
it now closes
add f49c276c Merge pull request #695 from
Aman-Mittal/fix/route-permissions-per-command
add 9daf9466 chore(deps): bump the codeql group with 2 updates
add 6c08e0de Merge pull request #700 from
apache/dependabot/github_actions/codeql-4b2c77c676
add 8f9579e4 chore(deps-dev): bump @emnapi/runtime
add a93c7547 Merge pull request #701 from
apache/dependabot/npm_and_yarn/catch-all-1d48734c7c
add cccc4e40 chore(api): sync the Fineract OpenAPI spec and regenerate the
client
No new revisions were added by this update.
Summary of changes:
.github/ISSUE_TEMPLATE/config.yml | 13 +-
.github/ISSUE_TEMPLATE/feature_request.yml | 12 +
.github/pull_request_template.md | 18 +
.github/scripts/post-e2e-comments.js | 55 +-
.github/workflows/ci.yml | 11 +
.github/workflows/codeql.yml | 4 +-
.github/workflows/pr-comments.yml | 57 +-
.rat-excludes | 5 +-
AGENTS.md | 10 +
CONTRIBUTING.md | 44 +
DOCS/ADAPTERS.md | 250 ++-
DOCS/CI_CHECKS.md | 77 +-
DOCS/DEPENDENCY_UPGRADES.md | 95 ++
DOCS/adr/0006-generated-api-boundary.md | 168 ++
README.md | 17 +
STYLE.md | 7 +-
e2e/accounting-closure-backend.spec.ts | 211 +++
e2e/collection-sheet.spec.ts | 91 ++
e2e/fixtures.ts | 111 +-
e2e/loan-delinquency-actions.spec.ts | 419 +++++
e2e/loan-flows-non-admin-roles.spec.ts | 407 +++++
e2e/loan-repayment-gating.spec.ts | 119 ++
e2e/oidc-login-backend.spec.ts | 115 ++
e2e/oidc-login.spec.ts | 211 +++
e2e/rbac-backend-restricted-user.spec.ts | 35 +-
e2e/rbac-dead-end-controls.spec.ts | 202 +++
e2e/rbac-disabled-flag-backend.spec.ts | 167 ++
e2e/rbac-multi-permission.spec.ts | 41 +-
e2e/rbac-office-scoped-user.spec.ts | 200 +++
e2e/rbac-permissionless-user.spec.ts | 143 ++
e2e/report-parameter-backend.spec.ts | 27 +-
e2e/savings-flows-non-admin-roles.spec.ts | 361 +++++
e2e/savings-transaction-gating.spec.ts | 110 ++
e2e/utils/fineract-login.ts | 34 +
e2e/utils/seed-api.ts | 232 ++-
e2e/utils/ui-rbac.ts | 283 ++++
eslint-rules/no-generated-api-import.js | 148 ++
eslint-rules/no-generated-api-import.test.js | 131 ++
eslint-suppressions.json | 1684 ++++++++++++++------
eslint.config.js | 42 +-
package-lock.json | 34 +-
package.json | 9 +-
playwright.config.ts | 11 +
public/api/fineract.json | 123 +-
public/api/fineract.provenance.json | 16 +-
scripts/check-permission-codes.mjs | 168 ++
scripts/check-route-permissions.mjs | 120 +-
scripts/check-template-text.mjs | 187 +++
scripts/check-translations.mjs | 31 +-
scripts/fetch-permission-codes.sh | 51 +
scripts/permission-codes.json | 738 +++++++++
scripts/pr-comment-actions.test.mjs | 237 ++-
scripts/snapshot-permission-codes.mjs | 137 ++
scripts/template-text-baseline.json | 1 +
src/app/api/.openapi-generator/FILES | 7 +-
src/app/api/api/client.service.ts | 20 +-
src/app/api/api/default.service.ts | 10 +-
src/app/api/model/chargeData.ts | 6 +-
...AuditFieldsData.ts => clientAuditFieldsData.ts} | 2 +-
...Status.ts => getChargesFeeFrequencyResponse.ts} | 2 +-
src/app/api/model/getChargesResponse.ts | 2 +
.../api/model/getClientObligeeDetailsResponse.ts | 35 -
src/app/api/model/getObligeeData.ts | 3 +
src/app/api/model/models.ts | 7 +-
.../api/model/postAccountsTypeAccountIdRequest.ts | 8 +
.../postClientsClientIdChargesChargeIdResponse.ts | 1 +
.../{changes.ts => postClientsNonPersonDetails.ts} | 5 +-
src/app/api/model/postClientsRequest.ts | 2 +
...ientsClientIdIdentifiersIdentifierIdChanges.ts} | 7 +-
...ientsClientIdIdentifiersIdentifierIdResponse.ts | 4 +-
src/app/api/model/putClientsClientIdRequest.ts | 1 +
...r.ts => putFinancialActivityAccountsChanges.ts} | 2 +-
.../model/putFinancialActivityAccountsResponse.ts | 4 +-
src/app/app.component.test.ts | 6 +-
src/app/app.component.ts | 4 +-
src/app/app.config.ts | 42 +-
.../core/adapters/api/accounting-closure.api.ts | 98 ++
src/app/core/adapters/api/api-surface.json | 1 +
src/app/core/adapters/api/entity-notes.api.ts | 94 ++
.../api/fineract-accounting-closure.api.test.ts | 187 +++
.../api/fineract-accounting-closure.api.ts | 105 ++
src/app/core/adapters/api/fineract-date.ts | 55 +
.../adapters/api/fineract-entity-notes.api.test.ts | 185 +++
.../core/adapters/api/fineract-entity-notes.api.ts | 102 ++
.../core/adapters/api/fineract-holiday.api.test.ts | 225 +++
src/app/core/adapters/api/fineract-holiday.api.ts | 204 +++
.../api/fineract-loan-transaction.api.test.ts | 236 +++
.../adapters/api/fineract-loan-transaction.api.ts | 179 +++
.../core/adapters/api/fineract-loan.api.test.ts | 221 +++
src/app/core/adapters/api/fineract-loan.api.ts | 146 ++
.../core/adapters/api/fineract-office.api.test.ts | 233 +++
src/app/core/adapters/api/fineract-office.api.ts | 140 ++
.../core/adapters/api/fineract-role.api.test.ts | 189 +++
src/app/core/adapters/api/fineract-role.api.ts | 137 ++
.../core/adapters/api/fineract-staff.api.test.ts | 227 +++
src/app/core/adapters/api/fineract-staff.api.ts | 172 ++
.../core/adapters/api/fineract-teller.api.test.ts | 354 ++++
src/app/core/adapters/api/fineract-teller.api.ts | 324 ++++
.../core/adapters/api/fineract-user.api.test.ts | 204 +++
src/app/core/adapters/api/fineract-user.api.ts | 140 ++
.../core/adapters/api/holiday-rescheduling-type.ts | 38 +
src/app/core/adapters/api/holiday.api.ts | 136 ++
src/app/core/adapters/api/loan-transaction.api.ts | 159 ++
src/app/core/adapters/api/loan.api.ts | 154 ++
src/app/core/adapters/api/office.api.ts | 116 ++
src/app/core/adapters/api/role.api.ts | 156 ++
src/app/core/adapters/api/staff.api.ts | 145 ++
src/app/core/adapters/api/teller.api.ts | 213 +++
src/app/core/adapters/api/user.api.ts | 119 ++
src/app/core/adapters/i18n/i18n.adapter.ts | 2 +-
.../i18n/missing-translation.handler.test.ts | 48 +-
.../adapters/i18n/missing-translation.handler.ts | 32 +-
.../adapters/i18n/ngx-translate-i18n.adapter.ts | 2 +-
src/app/core/adapters/index.ts | 25 +
src/app/core/guards/command-permissions.test.ts | 115 ++
src/app/core/guards/command-permissions.ts | 150 ++
src/app/core/guards/permission.guard.test.ts | 101 +-
src/app/core/guards/permission.guard.ts | 30 +-
src/app/core/services/auth.service.test.ts | 44 +-
src/app/core/services/config.service.test.ts | 18 +
src/app/core/services/config.service.ts | 21 +
.../services/institution-config.service.test.ts | 23 +-
.../services/navigation-config.service.test.ts | 7 -
src/app/core/services/navigation-config.service.ts | 3 +-
.../accounting-closure-form.component.test.ts | 85 +-
.../accounting-closure-form.component.ts | 54 +-
.../accounting-closures-list.component.test.ts | 80 +-
.../accounting-closures-list.component.ts | 22 +-
.../accounting-rule-form.component.test.ts | 77 +
.../accounting/accounting-rule-form.component.ts | 54 +-
.../charges/charge-form.component.test.ts} | 47 +-
.../accounting/charges/charge-form.component.ts | 42 +-
.../accounting/charges/charges-list.component.ts | 4 +-
.../accounting/chart-of-accounts.component.ts | 26 +-
...ancial-activity-mapping-form.component.test.ts} | 46 +-
.../financial-activity-mapping-form.component.ts | 12 +-
.../accounting/gl-account-form.component.ts | 64 +-
.../accounting/journal-entries-list.component.ts | 2 -
.../journal-entry-form.component.test.ts | 11 +
.../accounting/journal-entry-form.component.ts | 26 +-
.../provisioning-categories-form.component.ts | 22 +-
.../provisioning-categories-list.component.ts | 4 +-
.../provisioning-criteria-form.component.ts | 20 +-
.../provisioning-criteria-list.component.ts | 4 +-
.../provisioning-entries-form.component.ts | 16 +-
.../provisioning-entries-list.component.ts | 3 +-
.../run-accruals/run-accruals.component.ts | 16 +-
.../batch-operations/batch-operations.component.ts | 18 +-
.../admin/cob-tools/cob-tools.component.ts | 4 +-
.../external-events/external-events.component.ts | 4 +-
.../admin/inline-job/inline-job.component.ts | 18 +-
.../progressive-loan-model.component.ts | 4 +-
.../admin/wc-cob-tools/wc-cob-tools.component.ts | 4 +-
.../forgot-password/forgot-password.component.ts | 4 +-
.../features/calendars/calendar-form.component.ts | 24 +-
.../features/calendars/calendars-list.component.ts | 4 +-
.../email-campaign-form.component.ts | 36 +-
.../email-campaigns-list.component.ts | 4 +-
.../email-messages.component.test.ts} | 48 +-
.../email-messages/email-messages.component.ts | 66 +-
.../sms-campaign-form.component.test.ts} | 49 +-
.../sms-campaigns/sms-campaign-form.component.ts | 10 +-
.../sms-campaigns/sms-campaigns-list.component.ts | 4 +-
src/app/features/centers/center-form.component.ts | 36 +-
.../features/centers/center-view.component.test.ts | 2 +-
src/app/features/centers/center-view.component.ts | 16 +-
src/app/features/centers/centers-list.component.ts | 2 -
.../charges/client-charge-form.component.test.ts | 5 +-
.../charges/client-charge-form.component.ts | 26 +-
.../charges/client-charges-list.component.test.ts | 5 +-
.../charges/client-charges-list.component.ts | 9 +-
.../clients/client-action-dialog.component.test.ts | 5 +-
.../clients/client-action-dialog.component.ts | 22 +-
.../features/clients/client-form.component.test.ts | 11 +-
src/app/features/clients/client-form.component.ts | 4 +-
.../features/clients/client-view.component.test.ts | 7 +-
src/app/features/clients/client-view.component.ts | 268 ++--
src/app/features/clients/clients-list.component.ts | 4 +-
.../client-collateral-form.component.test.ts | 5 +-
.../collateral/client-collateral-form.component.ts | 22 +-
.../client-collateral-list.component.test.ts | 5 +-
.../collateral/client-collateral-list.component.ts | 13 +-
.../clients/kyc/client-address-form.component.ts | 66 +-
.../kyc/client-document-form.component.test.ts | 5 +-
.../clients/kyc/client-document-form.component.ts | 24 +-
.../kyc/client-family-member-form.component.ts | 64 +-
.../kyc/client-identifier-form.component.ts | 28 +-
.../clients/kyc/client-note-form.component.test.ts | 44 +-
.../clients/kyc/client-note-form.component.ts | 65 +-
.../tabs/client-addresses-list.component.ts | 10 +-
.../tabs/client-documents-list.component.test.ts | 12 +-
.../tabs/client-documents-list.component.ts | 15 +-
.../tabs/client-family-members-list.component.ts | 14 +-
.../tabs/client-identifiers-list.component.ts | 14 +-
.../tabs/client-notes-list.component.test.ts | 31 +-
.../clients/tabs/client-notes-list.component.ts | 34 +-
.../client-transactions-list.component.test.ts | 5 +-
.../client-transactions-list.component.ts | 9 +-
.../collection-sheet.component.test.ts | 192 +++
.../collection-sheet/collection-sheet.component.ts | 107 +-
.../dashboard/system-status.component.test.ts | 19 +
.../features/dashboard/system-status.component.ts | 66 +-
.../asset-owner-view.component.test.ts | 95 ++
.../asset-owner-view/asset-owner-view.component.ts | 26 +-
.../fintech/asset-owners-list.component.ts | 6 +-
.../features/groups/group-form.component.test.ts | 5 +-
src/app/features/groups/group-form.component.ts | 36 +-
.../features/groups/group-note-form.component.ts | 34 +-
src/app/features/groups/group-view.component.ts | 15 +-
.../groups/tabs/group-notes-list.component.ts | 30 +-
.../interop/interop-account-view.component.ts | 26 +-
.../features/interop/interop-health.component.ts | 10 +-
.../interop/interop-party-lookup.component.ts | 26 +-
.../features/interop/interop-quotes.component.ts | 26 +-
.../interop-transfers.component.test.ts} | 47 +-
.../interop/interop-transfers.component.ts | 42 +-
.../bulk-loan-reassignment.component.ts | 20 +-
.../bulk-reassignment.component.test.ts | 5 +-
.../bulk-reassignment.component.ts | 28 +-
.../loans/charges/loan-charge-form.component.ts | 22 +-
.../loans/charges/loan-charges-list.component.ts | 13 +-
.../cob-catchup/loan-cob-catchup.component.ts | 4 +-
.../collateral/collateral-form.component.test.ts | 5 +-
.../loans/collateral/collateral-form.component.ts | 38 +-
.../collateral/collateral-list.component.test.ts | 5 +-
.../loans/collateral/collateral-list.component.ts | 14 +-
.../guarantors/guarantor-form.component.test.ts | 5 +-
.../loans/guarantors/guarantor-form.component.ts | 56 +-
.../guarantors/guarantors-list.component.test.ts | 5 +-
.../loans/guarantors/guarantors-list.component.ts | 15 +-
.../interest-pause-form.component.test.ts | 5 +-
.../interest-pause-form.component.ts | 18 +-
.../interest-pauses-list.component.test.ts | 5 +-
.../interest-pauses-list.component.ts | 13 +-
.../loan-account-lock.component.ts | 4 +-
.../loans/loan-chargeback-dialog.component.ts | 32 +-
.../features/loans/loan-command-dialogs.test.ts | 17 +-
src/app/features/loans/loan-form.component.ts | 156 +-
.../loan-schedule-modify.component.test.ts | 68 +
.../loan-schedule-modify.component.ts | 20 +-
.../loans/loan-transaction-form.component.ts | 4 +-
src/app/features/loans/loan-view.component.test.ts | 93 +-
src/app/features/loans/loan-view.component.ts | 91 +-
.../features/loans/loans-list.component.test.ts | 196 +++
src/app/features/loans/loans-list.component.ts | 100 +-
src/app/features/loans/loans.routes.ts | 6 +-
.../loans-point-in-time.component.test.ts} | 48 +-
.../point-in-time/loans-point-in-time.component.ts | 36 +-
.../post-dated-check-form.component.test.ts | 5 +-
.../post-dated-check-form.component.ts | 32 +-
.../post-dated-checks-list.component.test.ts | 5 +-
.../post-dated-checks-list.component.ts | 13 +-
.../rescheduling/reschedule-form.component.test.ts | 71 +
.../rescheduling/reschedule-form.component.ts | 60 +-
.../reschedule-requests-list.component.ts | 6 +-
.../tabs/loan-delinquency-action.model.test.ts | 83 +
.../loans/tabs/loan-delinquency-action.model.ts | 81 +
...loan-delinquency-pause-dialog.component.test.ts | 114 ++
.../loan-delinquency-pause-dialog.component.ts | 203 +++
.../tabs/loan-delinquency-tab.component.test.ts | 287 +++-
.../loans/tabs/loan-delinquency-tab.component.ts | 223 ++-
.../loans/transaction-detail-dialog.component.ts | 89 +-
src/app/features/login/login.component.test.ts | 43 +
src/app/features/login/login.component.ts | 63 +-
.../features/meetings/meeting-form.component.ts | 18 +-
.../features/meetings/meetings-list.component.ts | 4 +-
.../notifications/notifications-list.component.ts | 4 +-
.../account-number-format-form.component.ts | 22 +-
.../account-number-formats-list.component.ts | 4 +-
.../organization/funds/fund-form.component.ts | 24 +-
.../organization/funds/funds-list.component.ts | 8 +-
.../group-levels/group-levels-list.component.ts | 3 +-
.../office-transaction-form.component.ts | 28 +-
.../office-transactions-list.component.test.ts | 122 ++
.../office-transactions-list.component.ts | 190 ++-
.../offices/office-form.component.test.ts | 80 +-
.../organization/offices/office-form.component.ts | 114 +-
.../organization/offices/office-view.component.ts | 25 +-
.../offices/offices-list.component.test.ts | 97 +-
.../organization/offices/offices-list.component.ts | 47 +-
.../features/organization/organization.routes.ts | 22 +-
.../payment-types/payment-type-form.component.ts | 30 +-
.../payment-types/payment-types-list.component.ts | 4 +-
.../staff/staff-form.component.test.ts | 131 +-
.../organization/staff/staff-form.component.ts | 173 +-
.../staff/staff-list.component.test.ts | 42 +-
.../organization/staff/staff-list.component.ts | 18 +-
.../products/account-action-form.component.test.ts | 5 +-
.../products/account-action-form.component.ts | 50 +-
.../product-accounting-section.component.test.ts | 4 +-
.../collateral-management-form.component.test.ts | 5 +-
.../collateral-management-form.component.ts | 40 +-
.../collateral-management-list.component.ts | 13 +-
.../products/deposit-account-view.component.ts | 4 +-
...xed-deposit-transactions-list.component.test.ts | 5 +-
.../fixed-deposit-transactions-list.component.ts | 3 +-
.../fixed-deposit-form.component.test.ts | 5 +-
.../fixed-deposits/fixed-deposit-form.component.ts | 70 +-
.../fixed-deposit-product-form.component.test.ts | 5 +-
.../fixed-deposit-product-form.component.ts | 60 +-
.../fixed-deposit-products-list.component.test.ts | 5 +-
.../fixed-deposit-products-list.component.ts | 8 +-
.../fixed-deposits-list.component.test.ts | 5 +-
.../fixed-deposits-list.component.ts | 12 +-
.../floating-rate-form.component.test.ts | 27 +-
.../floating-rates/floating-rate-form.component.ts | 41 +-
.../floating-rates-list.component.test.ts | 5 +-
.../floating-rates-list.component.ts | 12 +-
.../interest-rate-chart-form.component.test.ts | 5 +-
.../interest-rate-chart-form.component.ts | 24 +-
.../interest-rate-chart-slabs.component.ts | 53 +-
.../interest-rate-charts-list.component.ts | 17 +-
.../loan-originator-form.component.test.ts | 5 +-
.../loan-originator-form.component.ts | 36 +-
.../loan-originators-list.component.ts | 13 +-
.../products/loan-product-form.component.test.ts | 5 +-
.../products/loan-product-form.component.ts | 300 ++--
.../products/loan-product-view.component.ts | 34 +-
.../products/loan-products-list.component.ts | 15 +-
.../on-hold-transactions-list.component.test.ts | 5 +-
.../on-hold-transactions-list.component.ts | 3 +-
.../payment-credit-allocation-editor.component.ts | 40 +-
.../products/product-mix/product-mix.component.ts | 19 +-
src/app/features/products/products.routes.ts | 7 +-
.../products/rates/rate-form.component.test.ts | 5 +-
.../features/products/rates/rate-form.component.ts | 30 +-
.../products/rates/rates-list.component.test.ts | 5 +-
.../products/rates/rates-list.component.ts | 10 +-
...ring-deposit-transaction-form.component.test.ts | 5 +-
...recurring-deposit-transaction-form.component.ts | 22 +-
.../recurring-deposit-form.component.ts | 88 +-
.../recurring-deposit-product-form.component.ts | 54 +-
.../recurring-deposit-products-list.component.ts | 10 +-
.../recurring-deposits-list.component.ts | 12 +-
.../products/savings-account-form.component.ts | 42 +-
...ings-account-transaction-form.component.test.ts | 5 +-
.../savings-account-transaction-form.component.ts | 18 +-
.../savings-account-view.component.test.ts | 58 +
.../products/savings-account-view.component.ts | 83 +-
.../savings-charge-form.component.test.ts | 5 +-
.../savings-charge-form.component.ts | 28 +-
.../savings-charges-list.component.ts | 9 +-
.../products/savings-officer-dialog.component.ts | 12 +-
.../products/savings-product-form.component.ts | 40 +-
.../products/savings-products-list.component.ts | 6 +-
.../share-dividend-form.component.test.ts | 5 +-
.../share-dividend-form.component.ts | 22 +-
.../share-dividends-list.component.ts | 9 +-
.../shares/share-account-form.component.test.ts | 5 +-
.../shares/share-account-form.component.ts | 46 +-
.../shares/share-accounts-list.component.test.ts | 5 +-
.../shares/share-accounts-list.component.ts | 10 +-
.../shares/share-product-form.component.ts | 45 +-
.../shares/share-products-list.component.ts | 8 +-
.../tax-component-form.component.test.ts | 5 +-
.../tax-components/tax-component-form.component.ts | 22 +-
.../tax-components-list.component.test.ts | 5 +-
.../tax-components-list.component.ts | 6 +-
.../tax-groups/tax-group-form.component.test.ts | 5 +-
.../tax-groups/tax-group-form.component.ts | 24 +-
.../tax-groups/tax-groups-list.component.test.ts | 5 +-
.../tax-groups/tax-groups-list.component.ts | 6 +-
src/app/features/profile/user-profile.component.ts | 39 +-
.../reporting/report-execution.service.test.ts | 2 +-
.../features/reporting/reports-list.component.ts | 8 +-
src/app/features/reporting/run-report.component.ts | 4 +-
src/app/features/search/global-search.component.ts | 46 +-
.../audit-logs/audit-logs-list.component.test.ts | 78 +
.../audit-logs/audit-logs-list.component.ts | 106 +-
.../security/roles/role-form.component.test.ts | 157 +-
.../features/security/roles/role-form.component.ts | 201 +--
.../security/roles/roles-list.component.test.ts | 31 +-
.../security/roles/roles-list.component.ts | 22 +-
.../features/security/users/user-form.component.ts | 184 ++-
.../security/users/users-list.component.ts | 20 +-
.../edit-configuration-dialog.component.ts | 16 +-
.../settings/global-configurations.component.ts | 8 +-
.../settings/holiday-form.component.test.ts | 119 +-
.../features/settings/holiday-form.component.ts | 166 +-
.../settings/holidays-list.component.test.ts | 107 +-
.../features/settings/holidays-list.component.ts | 86 +-
.../settings/two-factor-config.component.ts | 4 +-
.../settings/working-days.component.test.ts | 35 +-
.../features/settings/working-days.component.ts | 34 +-
.../spm/likelihood/likelihood.component.ts | 22 +-
.../spm/poverty-line/poverty-line.component.ts | 24 +-
.../spm/scorecards/scorecards.component.ts | 3 +-
.../survey-responses/survey-responses.component.ts | 30 +-
.../spm/surveys/spm-surveys-form.component.ts | 44 +-
.../spm/surveys/spm-surveys-list.component.ts | 12 +-
.../adhoc-query/adhoc-query-form.component.ts | 34 +-
.../adhoc-query/adhoc-query-list.component.ts | 15 +-
.../system/bulk-import/bulk-import.component.ts | 20 +-
.../business-dates/business-dates.component.ts | 28 +-
.../business-steps/business-steps.component.ts | 22 +-
src/app/features/system/cache/cache.component.ts | 10 +-
.../features/system/codes/code-form.component.ts | 18 +-
.../system/codes/code-value-form.component.ts | 30 +-
.../system/codes/code-values-list.component.ts | 14 +-
.../features/system/codes/codes-list.component.ts | 16 +-
.../credit-bureau-config.component.ts | 38 +-
.../data-tables/datatables-form.component.ts | 50 +-
.../data-tables/datatables-list.component.ts | 15 +-
.../delinquency-management.component.ts | 29 +-
.../entity-data-table-checks-form.component.ts | 28 +-
.../entity-data-table-checks-list.component.ts | 9 +-
.../entity-mapping-form.component.ts | 28 +-
.../entity-mapping-list.component.ts | 17 +-
.../external-events/external-events.component.ts | 10 +-
.../external-services.component.ts | 16 +-
.../field-configuration.component.ts | 8 +-
.../features/system/hooks/hooks-form.component.ts | 22 +-
.../features/system/hooks/hooks-list.component.ts | 15 +-
.../instance-mode/instance-mode.component.ts | 16 +-
.../loan-product-details.component.ts | 3 +-
.../notifications-config.component.ts | 12 +-
.../system/oidc-config/oidc-config.component.ts | 55 +-
.../password-preferences.component.ts | 10 +-
.../system/permissions/permissions.component.ts | 16 +-
.../report-mailing-jobs-form.component.ts | 58 +-
.../report-mailing-jobs-list.component.ts | 37 +-
.../scheduler-job-history.component.ts | 6 +-
.../scheduler-jobs-list.component.ts | 18 +-
src/app/features/system/sms/sms-form.component.ts | 24 +-
src/app/features/system/sms/sms-list.component.ts | 13 +-
.../system/templates/template-form.component.ts | 34 +-
.../system/templates/templates-list.component.ts | 14 +-
.../checker-inbox/view-payload-dialog.component.ts | 6 +-
.../tellers/cashiers/cashier-form.component.ts | 85 +-
.../cashier-transaction-form.component.test.ts | 57 +-
.../cashiers/cashier-transaction-form.component.ts | 75 +-
.../cashier-transactions.component.test.ts | 58 +-
.../cashiers/cashier-transactions.component.ts | 68 +-
.../cashiers/cashiers-list.component.test.ts | 70 +
.../tellers/cashiers/cashiers-list.component.ts | 69 +-
.../features/tellers/teller-form.component.test.ts | 144 +-
src/app/features/tellers/teller-form.component.ts | 148 +-
.../tellers/tellers-list.component.test.ts | 75 +
src/app/features/tellers/tellers-list.component.ts | 42 +-
.../transfers/account-transfer-form.component.ts | 84 +-
.../transfers/account-transfers-list.component.ts | 6 +-
.../standing-instruction-form.component.test.ts | 8 +
.../standing-instruction-form.component.ts | 112 +-
.../standing-instruction-history.component.ts | 3 +-
.../standing-instructions-list.component.ts | 8 +-
.../breach/wc-breach-form.component.ts | 38 +-
.../breach/wc-breach-list.component.ts | 18 +-
.../wc-loan-product-form.component.ts | 106 +-
.../wc-loan-products-list.component.ts | 18 +-
.../wc-loan-account-lock.component.ts | 20 +-
.../wc-loan-cob-catchup.component.ts | 30 +-
.../loans/wc-loan-action-form.component.ts | 74 +-
.../loans/wc-loan-form.component.ts | 70 +-
.../loans/wc-loan-view.component.ts | 244 +--
.../loans/wc-loans-list.component.ts | 8 +-
.../near-breach/wc-near-breach-form.component.ts | 34 +-
.../near-breach/wc-near-breach-list.component.ts | 18 +-
src/app/layout/header.component.ts | 4 +-
src/app/layout/inactivity-dialog.component.test.ts | 5 +-
src/app/layout/inactivity-dialog.component.ts | 12 +-
src/app/layout/sidebar.component.test.ts | 5 +-
src/app/layout/sidebar.component.ts | 16 +-
.../charts/donut-chart.component.test.ts | 14 +
.../components/charts/donut-chart.component.ts | 15 +-
.../client-search/client-search.component.ts | 4 +-
.../confirm-dialog/confirm-dialog.component.ts | 4 +-
.../create-office-dialog.component.test.ts | 56 +-
.../create-office-dialog.component.ts | 38 +-
.../data-table/data-table.component.test.ts | 52 +-
.../components/data-table/data-table.component.ts | 88 +-
.../datatable-entry-dialog.component.ts | 4 +-
.../entity-datatables.component.test.ts | 5 +-
.../entity-notes/entity-notes.component.ts | 73 +-
.../guidance-tour/guidance-tour.component.test.ts | 5 +-
.../guidance-tour/guidance-tour.component.ts | 4 +-
.../paginator/paginator.component.test.ts | 6 +-
.../status-badge/status-badge.component.test.ts | 14 +
.../status-badge/status-badge.component.ts | 27 +-
.../has-institution-feature.directive.test.ts | 12 +-
src/app/shared/utils/permission-check.test.ts | 108 ++
src/app/shared/utils/permission-check.ts | 60 +
src/app/testing/i18n-testing.ts | 6 +-
src/app/testing/render.ts | 7 +-
src/app/testing/translated-text.ts | 90 ++
src/assets/i18n/en.json | 127 +-
tsconfig.json | 3 +-
486 files changed, 22032 insertions(+), 5702 deletions(-)
create mode 100644 DOCS/DEPENDENCY_UPGRADES.md
create mode 100644 DOCS/adr/0006-generated-api-boundary.md
create mode 100644 e2e/accounting-closure-backend.spec.ts
create mode 100644 e2e/collection-sheet.spec.ts
create mode 100644 e2e/loan-delinquency-actions.spec.ts
create mode 100644 e2e/loan-flows-non-admin-roles.spec.ts
create mode 100644 e2e/loan-repayment-gating.spec.ts
create mode 100644 e2e/oidc-login-backend.spec.ts
create mode 100644 e2e/oidc-login.spec.ts
create mode 100644 e2e/rbac-dead-end-controls.spec.ts
create mode 100644 e2e/rbac-disabled-flag-backend.spec.ts
create mode 100644 e2e/rbac-office-scoped-user.spec.ts
create mode 100644 e2e/rbac-permissionless-user.spec.ts
create mode 100644 e2e/savings-flows-non-admin-roles.spec.ts
create mode 100644 e2e/savings-transaction-gating.spec.ts
create mode 100644 e2e/utils/ui-rbac.ts
create mode 100644 eslint-rules/no-generated-api-import.js
create mode 100644 eslint-rules/no-generated-api-import.test.js
create mode 100644 scripts/check-permission-codes.mjs
create mode 100644 scripts/check-template-text.mjs
create mode 100644 scripts/fetch-permission-codes.sh
create mode 100644 scripts/permission-codes.json
create mode 100644 scripts/snapshot-permission-codes.mjs
create mode 100644 scripts/template-text-baseline.json
copy src/app/api/model/{loanAuditFieldsData.ts => clientAuditFieldsData.ts}
(96%)
copy src/app/api/model/{getLoansLoanIdSubStatus.ts =>
getChargesFeeFrequencyResponse.ts} (95%)
delete mode 100644 src/app/api/model/getClientObligeeDetailsResponse.ts
copy src/app/api/model/{changes.ts => postClientsNonPersonDetails.ts} (92%)
copy src/app/api/model/{clientIdentifierRequest.ts =>
putClientsClientIdIdentifiersIdentifierIdChanges.ts} (89%)
rename src/app/api/model/{putFinancialActivityAccountscommentsSwagger.ts =>
putFinancialActivityAccountsChanges.ts} (94%)
create mode 100644 src/app/core/adapters/api/accounting-closure.api.ts
create mode 100644 src/app/core/adapters/api/entity-notes.api.ts
create mode 100644
src/app/core/adapters/api/fineract-accounting-closure.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-accounting-closure.api.ts
create mode 100644 src/app/core/adapters/api/fineract-date.ts
create mode 100644 src/app/core/adapters/api/fineract-entity-notes.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-entity-notes.api.ts
create mode 100644 src/app/core/adapters/api/fineract-holiday.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-holiday.api.ts
create mode 100644
src/app/core/adapters/api/fineract-loan-transaction.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-loan-transaction.api.ts
create mode 100644 src/app/core/adapters/api/fineract-loan.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-loan.api.ts
create mode 100644 src/app/core/adapters/api/fineract-office.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-office.api.ts
create mode 100644 src/app/core/adapters/api/fineract-role.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-role.api.ts
create mode 100644 src/app/core/adapters/api/fineract-staff.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-staff.api.ts
create mode 100644 src/app/core/adapters/api/fineract-teller.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-teller.api.ts
create mode 100644 src/app/core/adapters/api/fineract-user.api.test.ts
create mode 100644 src/app/core/adapters/api/fineract-user.api.ts
create mode 100644 src/app/core/adapters/api/holiday-rescheduling-type.ts
create mode 100644 src/app/core/adapters/api/holiday.api.ts
create mode 100644 src/app/core/adapters/api/loan-transaction.api.ts
create mode 100644 src/app/core/adapters/api/loan.api.ts
create mode 100644 src/app/core/adapters/api/office.api.ts
create mode 100644 src/app/core/adapters/api/role.api.ts
create mode 100644 src/app/core/adapters/api/staff.api.ts
create mode 100644 src/app/core/adapters/api/teller.api.ts
create mode 100644 src/app/core/adapters/api/user.api.ts
create mode 100644 src/app/core/guards/command-permissions.test.ts
create mode 100644 src/app/core/guards/command-permissions.ts
create mode 100644
src/app/features/accounting/accounting-rule-form.component.test.ts
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
accounting/charges/charge-form.component.test.ts} (53%)
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
accounting/financial-activity-mapping-form.component.test.ts} (50%)
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
campaigns/email-messages/email-messages.component.test.ts} (53%)
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
campaigns/sms-campaigns/sms-campaign-form.component.test.ts} (53%)
create mode 100644
src/app/features/collection-sheet/collection-sheet.component.test.ts
create mode 100644
src/app/features/fintech/asset-owner-view/asset-owner-view.component.test.ts
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
interop/interop-transfers.component.test.ts} (50%)
create mode 100644
src/app/features/loans/loan-schedule-modify/loan-schedule-modify.component.test.ts
create mode 100644 src/app/features/loans/loans-list.component.test.ts
copy src/app/features/{system/instance-mode/instance-mode.component.test.ts =>
loans/point-in-time/loans-point-in-time.component.test.ts} (53%)
create mode 100644
src/app/features/loans/rescheduling/reschedule-form.component.test.ts
create mode 100644
src/app/features/loans/tabs/loan-delinquency-action.model.test.ts
create mode 100644 src/app/features/loans/tabs/loan-delinquency-action.model.ts
create mode 100644
src/app/features/loans/tabs/loan-delinquency-pause-dialog.component.test.ts
create mode 100644
src/app/features/loans/tabs/loan-delinquency-pause-dialog.component.ts
create mode 100644
src/app/features/organization/office-transactions/office-transactions-list.component.test.ts
create mode 100644
src/app/features/tellers/cashiers/cashiers-list.component.test.ts
create mode 100644 src/app/features/tellers/tellers-list.component.test.ts
create mode 100644 src/app/shared/utils/permission-check.test.ts
create mode 100644 src/app/shared/utils/permission-check.ts
create mode 100644 src/app/testing/translated-text.ts