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 f1f1e3d chore(api): sync the Fineract OpenAPI spec and regenerate the
client
add 52950c2 chore(deps): bump @hono/node-server and @angular/cli
add ae2a4d0 Merge pull request #350 from
apache/dependabot/npm_and_yarn/multi-e58e013584
add bc34253 Merge pull request #351 from apache/chore/fineract-spec-sync
add b995c2c fix: add NOTICE, repair spliced licence headers, widen RAT
coverage
add 52e7306 Merge pull request #352 from
Aman-Mittal/fix/asf-release-blockers
add 3223d6a chore(e2e): put a beat on every action while recording
add 0ca77bc test(e2e): size the response-capture wait for a paced run
add ac54b84 docs(demo): document the pacing switches and the two traps
add 98770c4 Merge pull request #353 from Aman-Mittal/chore/demo-pacing
add 0028b9e feat: gate the screens that drive Fineract's test-only
endpoints
add 82e9a20 Merge pull request #356 from
Aman-Mittal/feat/gate-internal-endpoint-screens
add c6466ca fix(e2e): stop the backend suite depending on the hour it
runs at
add 85dd87f Merge pull request #359 from
Aman-Mittal/fix/e2e-tenant-timezone-determinism
add 64d411a fix(build): drop the Google Fonts dependency and render in
the system UI font
add 48417d0 Merge pull request #361 from
Aman-Mittal/fix/drop-google-fonts-dependency
add 6ff8c08 feat(rbac): enforce permissions at the route boundary and
close the GA gate
add ebb00a1 test(e2e): generate the seeded user's password instead of
writing one down
add 99bbce7 fix(rbac): repair the two CI failures and type-check the e2e
suite
add b506396 chore: declare the e2e tsconfig's licence the way its
siblings do
add a5bb5be feat(rbac): say what is missing instead of only refusing
(#118, #139, #258)
add 58bcf20 Merge pull request #368 from Aman-Mittal/feat/route-level-rbac
add 534ca5c fix(oidc): make the tenant OIDC screen speak the platform's
own field names
add 6acd28f docs(oidc): describe how OIDC works, not what is broken about
it
add e5252f0 Merge pull request #371 from
Aman-Mittal/fix/oidc-config-screen
add e3cf28f feat(auth): ask for the second factor when Fineract requires
one
add 3f62c08 Merge pull request #372 from
Aman-Mittal/feat/two-factor-authentication
add 03cc7fb i18n: add the strings the parity screens need, in all three
catalogues
add 3d07b7b feat(accounting): view a ledger transaction, reverse it, and
carry balances in
add 6200a11 feat(system): manage report definitions, not just run reports
add 37130f9 feat(organization): give an office a screen of its own
add c419281 feat(portfolio): notes, documents, standing instructions and
custom fields where they were missing
add 459ffc3 fix(clients): stop sending a fixed deposit to the savings
account screen
add 7f34e90 feat(tasks): approve, disburse and activate in batches
add 3c43071 fix(loans): stop the loan edit form logging NG0100 on every
visit
add c6dbf32 test: cover the new screens at unit and backend level
add 25754c7 refactor: keep the new screens on the adapter side of the
boundary
add 41f5218 refactor: name the tabs instead of numbering them, and fetch
shares with the tab
add 7011b85 fix(groups,centers): one set of tab names per screen, not two
add dcb432f test(e2e): make the parity spec seed what it asserts on
add 0846def Merge pull request #375 from Aman-Mittal/feat/parity-gaps
add 35b276d chore(lint): replace the LGPL-3.0 sonarjs plugin with
permissive equivalents
add 8bee29d refactor: satisfy the newly-enabled lint rules
add 44a0cda feat(ci): fail the build on Category X or unclassified
dependency licences
add 5ef8ad4 ci(e2e): run the end-to-end suite on every push, on every
branch
add d621265 Merge pull request #378 from
Aman-Mittal/chore/license-policy-and-lint-plugins
add a685474 fix(deploy): make the container able to reach Fineract
add 5367c4e release: give the project a version, and check it against the
tag
add e4e8f30 ci: build the container and assert it actually proxies the API
add 08036ef docs: write down how a release is actually made
add 847dac0 docs: correct what the threat model and README say about this
application
add 55ca772 ci: move the tag check off the caching workflow
add fefb626 Merge pull request #379 from
Aman-Mittal/chore/release-blockers
add b10abd9 fix(a11y): give every clients route its own title
add 6ce4848 Merge pull request #380 from
opensource-joe/a11y/route-titles-clients
add 975bb8b chore(api): sync the Fineract OpenAPI spec and regenerate the
client
No new revisions were added by this update.
Summary of changes:
.github/workflows/ci.yml | 178 +
.github/workflows/e2e.yml | 88 +-
.github/workflows/release-tag.yml | 64 +
.gitmodules | 3 -
.rat-excludes | 20 +-
AGENTS.md | 2 +-
CHANGELOG.md | 118 +
DOCS/CI_CHECKS.md | 45 +-
DOCS/DEMO.md | 36 +-
DOCS/FONTS.md | 125 +
DOCS/LINT_POLICY.md | 197 +
DOCS/OIDC.md | 127 +
DOCS/RBAC.md | 220 +
DOCS/TWO-FACTOR.md | 119 +
NOTICE | 5 +
README.md | 62 +-
RELEASING.md | 276 +
audit/GOOGLE-FONTS-ASF-AUDIT.md | 857 +++
audit/third-party-assets.csv | 8 +
deploy/Dockerfile | 46 +-
deploy/docker-compose-e2e-2fa.yml | 49 +
deploy/docker-compose.yml | 66 +-
deploy/entrypoint.sh | 96 +-
deploy/nginx.conf | 71 -
deploy/nginx.conf.template | 144 +
e2e/accessibility.spec.ts | 2 +-
e2e/center-servicing.spec.ts | 30 +-
e2e/client.spec.ts | 14 +-
e2e/deposit-account-servicing.spec.ts | 8 +-
e2e/deposit-product-configuration.spec.ts | 8 +-
e2e/e2e-journey.spec.ts | 14 +-
e2e/feature-coverage.spec.ts | 14 +-
e2e/fixtures.ts | 15 +
e2e/functional-coverage.spec.ts | 14 +-
e2e/group-membership.spec.ts | 8 +-
e2e/loan-account-actions.spec.ts | 8 +-
e2e/loan-lifecycle.spec.ts | 8 +-
e2e/loan-product-accounting.spec.ts | 4 +-
e2e/loan-servicing.spec.ts | 6 +-
e2e/login.spec.ts | 14 +-
e2e/parity-screens.spec.ts | 264 +
e2e/rbac-backend-restricted-user.spec.ts | 195 +
e2e/rbac-feature-flag.spec.ts | 26 +-
e2e/rbac-route-protection.spec.ts | 295 +
e2e/report-parameter-backend.spec.ts | 11 +-
e2e/reporting.spec.ts | 14 +-
e2e/savings-transaction-correction.spec.ts | 4 +-
e2e/share-account-servicing.spec.ts | 6 +-
e2e/share-product-accounting.spec.ts | 4 +-
e2e/teller-cash-management.spec.ts | 6 +-
e2e/two-factor-authentication.spec.ts | 283 +
e2e/two-factor-backend.spec.ts | 113 +
e2e/utils/capture-response.ts | 13 +-
e2e/utils/mailpit.ts | 68 +
e2e/utils/seed-api.ts | 285 +-
e2e/utils/settled-route.ts | 47 +
eslint-rules/cognitive-complexity.js | 294 +
eslint-rules/cognitive-complexity.test.js | 221 +
eslint-suppressions.json | 77 +-
eslint.config.js | 77 +-
jest.config.ts | 19 +
package-lock.json | 6757 ++++++++++++--------
package.json | 19 +-
playwright.config.ts | 71 +-
public/api/fineract.json | 1 +
public/api/fineract.provenance.json | 14 +-
public/config.json | 3 +-
scripts/check-dependency-licenses.mjs | 446 ++
scripts/check-internal-endpoints.mjs | 164 +
scripts/check-license.sh | 26 +-
scripts/check-route-permissions.mjs | 383 ++
scripts/check-version.mjs | 91 +
scripts/e2e-stack-2fa.sh | 79 +
scripts/ga-check.mjs | 88 +-
security.md | 40 +-
setup-jest.ts | 19 +
src/app/api/model/clientAddressRequest.ts | 1 +
src/app/app.config.ts | 2 +-
src/app/app.routes.ts | 23 +-
src/app/core/adapters/api/api-surface.json | 41 +-
.../download/browser-download.adapter.spec.ts | 2 +-
.../adapters/download/browser-download.adapter.ts | 4 +-
src/app/core/guards/developer-tools.guard.ts | 38 +
src/app/core/guards/permission.guard.spec.ts | 178 +
src/app/core/guards/permission.guard.ts | 132 +
src/app/core/icons.spec.ts | 4 +
src/app/core/interceptors/auth.interceptor.spec.ts | 62 +-
src/app/core/interceptors/auth.interceptor.ts | 18 +-
.../core/interceptors/error.interceptor.spec.ts | 62 +-
src/app/core/interceptors/error.interceptor.ts | 37 +-
src/app/core/services/auth.service.spec.ts | 101 +
src/app/core/services/auth.service.ts | 95 +-
src/app/core/services/config.service.ts | 24 +-
src/app/core/services/dialog.service.spec.ts | 4 -
.../services/navigation-config.service.spec.ts | 136 +-
src/app/core/services/navigation-config.service.ts | 354 +-
src/app/core/services/notification.service.spec.ts | 2 +-
src/app/core/services/notification.service.ts | 2 +-
src/app/core/services/two-factor.service.ts | 106 +
src/app/core/utils/date-formatter.spec.ts | 2 +-
src/app/core/utils/date-formatter.ts | 2 +-
.../accounting-closures-list.component.ts | 1 +
.../accounting/accounting-rules-list.component.ts | 1 +
src/app/features/accounting/accounting.routes.ts | 67 +
.../accounting/charges/charges-list.component.ts | 1 +
.../accounting/chart-of-accounts.component.ts | 1 +
.../financial-activity-mappings-list.component.ts | 1 +
.../accounting/frequent-postings.component.spec.ts | 133 +
.../accounting/frequent-postings.component.ts | 370 ++
.../accounting/journal-entries-list.component.ts | 23 +
.../journal-entry-view.component.spec.ts | 161 +
.../accounting/journal-entry-view.component.ts | 366 ++
.../accounting/opening-balances.component.spec.ts | 153 +
.../accounting/opening-balances.component.ts | 422 ++
.../provisioning-categories-form.component.spec.ts | 3 +-
.../provisioning-categories-list.component.ts | 1 +
.../provisioning-criteria-form.component.spec.ts | 3 +-
.../provisioning-criteria-list.component.ts | 1 +
.../provisioning-entries-list.component.ts | 1 +
src/app/features/admin/admin.routes.ts | 19 +
.../batch-operations/batch-operations.component.ts | 2 +-
.../features/calendars/calendars-list.component.ts | 1 +
src/app/features/calendars/calendars.routes.ts | 8 +
src/app/features/campaigns/campaigns.routes.ts | 16 +
.../email-messages/email-messages.component.ts | 60 +-
.../sms-campaigns/sms-campaigns-list.component.ts | 3 +-
src/app/features/centers/center-view.component.ts | 52 +-
src/app/features/centers/centers-list.component.ts | 1 +
src/app/features/centers/centers.routes.ts | 16 +-
.../charges/client-charges-list.component.ts | 1 +
.../features/clients/client-view.component.spec.ts | 82 +-
src/app/features/clients/client-view.component.ts | 314 +-
src/app/features/clients/clients.routes.spec.ts | 131 +
src/app/features/clients/clients.routes.ts | 63 +
.../collateral/client-collateral-list.component.ts | 1 +
.../tabs/client-family-members-list.component.ts | 6 +-
.../clients/tabs/client-notes-list.component.ts | 6 +-
.../client-standing-instructions-tab.component.ts} | 61 +-
.../dashboard/system-status.component.spec.ts | 109 +-
.../features/dashboard/system-status.component.ts | 163 +-
.../errors/access-denied.component.spec.ts | 125 +
src/app/features/errors/access-denied.component.ts | 150 +
.../asset-owner-view/asset-owner-view.component.ts | 27 +-
src/app/features/groups/group-view.component.ts | 99 +-
src/app/features/groups/groups-list.component.ts | 1 +
src/app/features/groups/groups.routes.ts | 14 +
.../tabs/group-accounts-tab.component.spec.ts | 76 +
.../groups/tabs/group-accounts-tab.component.ts | 157 +
.../interop/interop-transfers.component.ts | 32 +-
src/app/features/interop/interop.routes.ts | 12 +
.../loans/charges/loan-charges-list.component.ts | 1 +
.../loans/collateral/collateral-list.component.ts | 1 +
.../loans/guarantors/guarantors-list.component.ts | 1 +
.../interest-pauses-list.component.ts | 1 +
.../loan-account-lock.component.ts | 55 +-
src/app/features/loans/loan-form.component.ts | 791 +--
.../loan-undo-approval-dialog.component.spec.ts | 2 +-
src/app/features/loans/loan-view.component.spec.ts | 10 +-
src/app/features/loans/loan-view.component.ts | 226 +-
src/app/features/loans/loans-list.component.ts | 2 +-
src/app/features/loans/loans.routes.ts | 53 +-
.../point-in-time/loans-point-in-time.component.ts | 2 +-
src/app/features/login/login.component.spec.ts | 13 +-
src/app/features/login/login.component.ts | 207 +-
.../two-factor/two-factor-step.component.spec.ts | 230 +
.../login/two-factor/two-factor-step.component.ts | 335 +
.../features/meetings/meetings-list.component.ts | 1 +
src/app/features/meetings/meetings.routes.ts | 8 +
.../account-number-formats-list.component.ts | 1 +
.../organization/funds/funds-list.component.ts | 1 +
.../organization/offices/office-view.component.ts | 239 +
.../organization/offices/offices-list.component.ts | 16 +
.../features/organization/organization.routes.ts | 48 +-
.../payment-types/payment-types-list.component.ts | 1 +
.../collateral-management-form.component.spec.ts | 3 +-
.../collateral-management-list.component.ts | 1 +
.../products/deposit-account-view.component.ts | 32 +-
.../fixed-deposit-form.component.spec.ts | 4 +-
.../fixed-deposit-products-list.component.ts | 1 +
.../fixed-deposits-list.component.ts | 1 +
.../floating-rates-list.component.ts | 1 +
.../interest-rate-chart-form.component.spec.ts | 3 +-
.../interest-rate-chart-slabs.component.spec.ts | 3 +-
.../interest-rate-charts-list.component.ts | 1 +
.../loan-originator-form.component.spec.ts | 3 +-
.../loan-originators-list.component.ts | 1 +
.../products/loan-products-list.component.ts | 1 +
src/app/features/products/products.routes.ts | 120 +
.../products/rates/rate-form.component.spec.ts | 3 +-
.../products/rates/rates-list.component.ts | 1 +
.../recurring-deposit-products-list.component.ts | 1 +
.../recurring-deposits-list.component.ts | 1 +
.../savings-account-view.component.spec.ts | 6 +-
.../products/savings-account-view.component.ts | 116 +-
.../savings-charges-list.component.ts | 1 +
.../products/savings-products-list.component.ts | 1 +
...savings-standing-instructions-tab.component.ts} | 45 +-
.../share-dividends-list.component.ts | 1 +
.../shares/share-accounts-list.component.ts | 1 +
.../shares/share-products-list.component.ts | 1 +
.../tax-components-list.component.ts | 1 +
.../tax-groups/tax-groups-list.component.ts | 1 +
.../features/reporting/report-execution.service.ts | 2 +-
src/app/features/reporting/reporting.routes.ts | 6 +
src/app/features/reporting/run-report.component.ts | 12 +-
src/app/features/search/global-search.component.ts | 3 +-
.../audit-logs/audit-logs-list.component.ts | 4 +-
.../features/security/roles/role-form.component.ts | 2 +-
.../security/roles/roles-list.component.ts | 1 +
src/app/features/security/security.routes.ts | 16 +
.../security/users/users-list.component.ts | 1 +
.../features/settings/holidays-list.component.ts | 1 +
src/app/features/settings/settings.routes.ts | 12 +
src/app/features/spm/spm.routes.ts | 8 +
.../spm/surveys/spm-surveys-form.component.spec.ts | 3 +-
.../spm/surveys/spm-surveys-list.component.ts | 1 +
.../adhoc-query/adhoc-query-form.component.spec.ts | 3 +-
.../adhoc-query/adhoc-query-list.component.ts | 1 +
.../system/codes/code-values-list.component.ts | 1 +
.../features/system/codes/codes-list.component.ts | 1 +
.../delinquency-management.component.ts | 39 +-
.../entity-data-table-checks-list.component.ts | 1 +
.../entity-mapping-form.component.spec.ts | 3 +-
.../entity-mapping-list.component.ts | 1 +
.../system/hooks/hooks-form.component.spec.ts | 3 +-
.../features/system/hooks/hooks-list.component.ts | 1 +
.../oidc-config/oidc-config.component.spec.ts | 195 +-
.../system/oidc-config/oidc-config.component.ts | 200 +-
.../report-definition-form.component.spec.ts | 130 +
.../report-definition-form.component.ts | 354 +
.../report-definitions-list.component.spec.ts | 95 +
.../report-definitions-list.component.ts | 174 +
.../report-mailing-jobs-form.component.spec.ts | 3 +-
.../report-mailing-jobs-list.component.ts | 28 +-
.../features/system/sms/sms-form.component.spec.ts | 3 +-
src/app/features/system/sms/sms-list.component.ts | 1 +
src/app/features/system/system.routes.ts | 118 +-
src/app/features/tasks/tasks.routes.ts | 11 +
.../work-queues/work-queues.component.spec.ts | 177 +
.../tasks/work-queues/work-queues.component.ts | 513 ++
.../cashier-transactions.component.spec.ts | 3 +-
.../cashiers/cashier-transactions.component.ts | 2 +-
.../tellers/cashiers/cashiers-list.component.ts | 1 +
src/app/features/tellers/tellers-list.component.ts | 1 +
src/app/features/tellers/tellers.routes.ts | 10 +
src/app/features/transfers/transfers.routes.ts | 14 +-
.../breach/wc-breach-form.component.spec.ts | 3 +-
.../breach/wc-breach-list.component.ts | 1 +
.../wc-loan-product-form.component.spec.ts | 3 +-
.../wc-loan-products-list.component.ts | 1 +
.../loans/wc-loan-view.component.ts | 47 +-
.../loans/wc-loans-list.component.ts | 1 +
.../near-breach/wc-near-breach-list.component.ts | 1 +
.../working-capital/working-capital.routes.ts | 34 +
src/app/layout/header.component.ts | 25 +-
src/app/layout/sidebar.component.ts | 39 +-
.../charts/donut-chart.component.spec.ts | 14 +-
.../create-office-dialog.component.ts | 2 +-
.../data-table/data-table.component.spec.ts | 62 +-
.../components/data-table/data-table.component.ts | 19 +-
.../entity-datatables.component.spec.ts | 8 +-
.../entity-documents.component.ts} | 101 +-
.../entity-notes/entity-notes.component.ts} | 97 +-
.../help-icon/help-icon.component.spec.ts | 6 +-
.../components/help-icon/help-icon.component.ts | 8 +-
.../paginator/paginator.component.spec.ts | 2 +-
.../requires-permission.directive.spec.ts | 180 +
.../directives/requires-permission.directive.ts | 127 +
src/app/shared/index.ts | 5 +
.../shared/pipes/permission-summary.pipe.spec.ts | 111 +
src/app/shared/pipes/permission-summary.pipe.ts | 197 +
src/app/testing/adapters.ts | 21 +-
src/app/testing/config.ts | 6 +-
src/assets/i18n/en.json | 159 +-
src/assets/i18n/hi.json | 163 +-
src/assets/i18n/ko.json | 161 +-
src/index.html | 11 +-
src/styles.scss | 11 +-
src/styles/_common.scss | 25 +
tsconfig.e2e.json | 11 +
280 files changed, 20907 insertions(+), 4175 deletions(-)
create mode 100644 .github/workflows/release-tag.yml
delete mode 100644 .gitmodules
create mode 100644 CHANGELOG.md
create mode 100644 DOCS/FONTS.md
create mode 100644 DOCS/LINT_POLICY.md
create mode 100644 DOCS/OIDC.md
create mode 100644 DOCS/RBAC.md
create mode 100644 DOCS/TWO-FACTOR.md
create mode 100644 NOTICE
create mode 100644 RELEASING.md
create mode 100644 audit/GOOGLE-FONTS-ASF-AUDIT.md
create mode 100644 audit/third-party-assets.csv
create mode 100644 deploy/docker-compose-e2e-2fa.yml
delete mode 100644 deploy/nginx.conf
create mode 100644 deploy/nginx.conf.template
create mode 100644 e2e/parity-screens.spec.ts
create mode 100644 e2e/rbac-backend-restricted-user.spec.ts
create mode 100644 e2e/rbac-route-protection.spec.ts
create mode 100644 e2e/two-factor-authentication.spec.ts
create mode 100644 e2e/two-factor-backend.spec.ts
create mode 100644 e2e/utils/mailpit.ts
create mode 100644 e2e/utils/settled-route.ts
create mode 100644 eslint-rules/cognitive-complexity.js
create mode 100644 eslint-rules/cognitive-complexity.test.js
create mode 100644 scripts/check-dependency-licenses.mjs
create mode 100644 scripts/check-internal-endpoints.mjs
create mode 100644 scripts/check-route-permissions.mjs
create mode 100644 scripts/check-version.mjs
create mode 100644 scripts/e2e-stack-2fa.sh
create mode 100644 src/app/core/guards/developer-tools.guard.ts
create mode 100644 src/app/core/guards/permission.guard.spec.ts
create mode 100644 src/app/core/guards/permission.guard.ts
create mode 100644 src/app/core/services/two-factor.service.ts
create mode 100644
src/app/features/accounting/frequent-postings.component.spec.ts
create mode 100644 src/app/features/accounting/frequent-postings.component.ts
create mode 100644
src/app/features/accounting/journal-entry-view.component.spec.ts
create mode 100644 src/app/features/accounting/journal-entry-view.component.ts
create mode 100644
src/app/features/accounting/opening-balances.component.spec.ts
create mode 100644 src/app/features/accounting/opening-balances.component.ts
create mode 100644 src/app/features/clients/clients.routes.spec.ts
copy src/app/features/{loans/tabs/loan-standing-instructions-tab.component.ts
=> clients/tabs/client-standing-instructions-tab.component.ts} (57%)
create mode 100644 src/app/features/errors/access-denied.component.spec.ts
create mode 100644 src/app/features/errors/access-denied.component.ts
create mode 100644
src/app/features/groups/tabs/group-accounts-tab.component.spec.ts
create mode 100644 src/app/features/groups/tabs/group-accounts-tab.component.ts
create mode 100644
src/app/features/login/two-factor/two-factor-step.component.spec.ts
create mode 100644
src/app/features/login/two-factor/two-factor-step.component.ts
create mode 100644
src/app/features/organization/offices/office-view.component.ts
copy src/app/features/{loans/tabs/loan-standing-instructions-tab.component.ts
=> products/savings/savings-standing-instructions-tab.component.ts} (75%)
create mode 100644
src/app/features/system/report-definitions/report-definition-form.component.spec.ts
create mode 100644
src/app/features/system/report-definitions/report-definition-form.component.ts
create mode 100644
src/app/features/system/report-definitions/report-definitions-list.component.spec.ts
create mode 100644
src/app/features/system/report-definitions/report-definitions-list.component.ts
create mode 100644
src/app/features/tasks/work-queues/work-queues.component.spec.ts
create mode 100644 src/app/features/tasks/work-queues/work-queues.component.ts
rename src/app/{features/loans/loan-documents-tab.component.ts =>
shared/components/entity-documents/entity-documents.component.ts} (71%)
rename src/app/{features/loans/loan-notes-tab.component.ts =>
shared/components/entity-notes/entity-notes.component.ts} (62%)
create mode 100644
src/app/shared/directives/requires-permission.directive.spec.ts
create mode 100644 src/app/shared/directives/requires-permission.directive.ts
create mode 100644 src/app/shared/pipes/permission-summary.pipe.spec.ts
create mode 100644 src/app/shared/pipes/permission-summary.pipe.ts
create mode 100644 tsconfig.e2e.json