Skip to content

Fix/infra redirection (#585) - #586

Open
kayiganwa04 wants to merge 2 commits into
masterfrom
fix/infra_redirection
Open

Fix/infra redirection (#585)#586
kayiganwa04 wants to merge 2 commits into
masterfrom
fix/infra_redirection

Conversation

@kayiganwa04

Copy link
Copy Markdown
Contributor

infra/src/redirect/index.js — rewritten. The matcher moved from unanchored endsWith to anchored longest-match-wins with an exact table checked first, which eliminates the /technical/api/ self-match loop by construction rather than by a guard. Compaction made it fit: 38 /documentation/* → /legacy/* rules collapsed into 4 prefix families (verified a clean swap with zero exceptions), taking the file from 9,929 bytes to 8,003 against the hard 10,240 limit — from 311 bytes of headroom to 2,237, while adding coverage for all 170 stale pages.

Rules added: /api/ → /technical/api/, 14 generated /technical// → /technical/technical//, and the /product/ and misc moves. The 13 rules that pointed into the stale /api tree are repointed.

Two things I found while doing the diff pass before deleting link_list.txt, both worth having:

A duplicate from key (frequently-asked-questions.html) where the second silently shadowed the first. Resolved to preserve current production behaviour.
7 rules authored in 2021 that were never shipped but whose targets are live today (/documentation/contributors-guide/standards/versioning.html and similar). They currently 404. Salvaged them before deleting the list — that was the point of the diff pass.
scripts/_test_redirects.js (new) — checks size, duplicate keys, loops, that every rule lands on a page that exists, that no live page is redirected away, 22 named hazard cases, and fails the build when a branch removes a page without a rule or a no-redirect.txt entry. Wired into the build job so it gates infra.

* feat: add i18n configuration for French locale

* chore: lint VuePress config and update dev dependency versions

* docs: add French translations for /

* feat: add French documentation for product features and localization support

* feat: update French translations for Currency Conversion documentation and diagrams

* feat: mdae configuration of french language and translated adoption section

* fix: small improvement for readability

* chore: removing redundant title

* chore: helm command typo

* chore: update dependencies and improve code formatting in VuePress theme utilities

* fix: remove language specific checks to accomodate for future languages in 404

* fix: build of the documentation

* feat: update dependencies and enhance French /technical documentation
- Improved the structure of the VuePress configuration to better organize technical content.
- Included various assets and diagrams to support the new documentation.

* chore: Updated `got` to version 15.0.0 and `npm-check-updates` to version 20.0.0 in package files.

* feat: made some translations for getting started and quickstart

* feat: add french translation for the community/ documentation

- Added new sections to the VuePress configuration for the community section

* chore: update French documentation for community and technical sections

- Standardized section headers in various documents for consistency.

* chore: remove outdated demo and quickstart documentation files and last translation of technical-faqs.md

* chore: remove unused files from the fr version

* sync master changes

* chore: sync fr documentation with master

* chore: update french translation following reviews

* chore: removing draft files

* chore: update update french translation following reviews

* chore: update update french translation following reviews

* chore: update update french translation following reviews

* chore: update update french translation following reviews

* chore: update plantuml

* chore: update French translations for endpoint terminology across various documents

* chore: fr local fix technical/release

* chore: update French translations for terminology and document structure across various technical documents

* chore: update French translations for terminology and document structure across various technical documents

* chore: update French translations for terminology and document structure across various technical documents

* chore: replace cotations to devis in fr translation

* chore: update French translations for terminology and document structure across various technical documents

* chore: type on devise in fr doc

* chore: update French documentation for quoting service

* chore: refine French documentation for central ledger operations, enhancing terminology and clarity across multiple files

* chore: enhance French documentation for bulk transfer processes, improving terminology and clarity across multiple files

* chore: improve terminology and clarity in SDK Scheme Adapter documentation across multiple files in the source document

* chore: enhance French documentation for event processing and SDK Scheme Adapter, improving terminology and clarity across multiple files

* chore: update French documentation for bounded contexts, enhancing terminology and clarity across multiple files

* chore: update French documentation for bounded contexts, refining terminology and improving clarity in multiple files

* chore: refine French documentation for reference architecture, enhancing terminology and clarity in further reading section

* chore: enhance French documentation for API specifications, improving terminology and clarity across multiple files

* chore: enhance French documentation for connectivity, deployment, development, engineering, invariants, feature list, performance, product, risk, security, and tariffs, improving terminology and clarity across multiple files

* chore: added new feedback from Julie

* chore: enhance French documentation for Mojaloop, improving terminology and clarity in multiple files, including README, deployment, features, and workstreams

* chore: update French README documentation to specify Slack channel for community discussions

* chore: json packages

* fix: correct terminology in documentation, for adoption pages

* fix: update terminology and improve clarity in French documentation across multiple files

* feat: update on the getting-started fr pages

* sync with master changes in community pages

* chore: added translated svgs to french and minor updates

* fix: removed pnpm file

* chore: added translation guidelines

* fix: fixed deviation issue

---------

Co-authored-by: maxime-nzorubara <maxime.nzorubara@gmail.com>
Co-authored-by: Maxime Nzorubara <58881605+MaximeNzo@users.noreply.github.com>
The dependency bumps to got@^16.0.0, svgo@^4.1.0 and
npm-check-updates@^23.1.0 landed in package.json without a
corresponding package-lock.json update, so `npm ci` failed with
EUSAGE (lock file's got@15.1.0 does not satisfy got@16.0.0).

Regenerate the lockfile and raise .nvmrc from 22.15.0 to 22.23.2,
which the new dependencies require (node ^22.22.2 || ^24.15.0 || >=26).
@mojaloopci

Copy link
Copy Markdown

Preview deployment is available at: https://docs.mojaloop.io/pr/586/

@Artificed

Copy link
Copy Markdown

Matcher logic looks right to me, I traced the exact/prefix precedence and the ISO 20022 self-nesting guard and couldn't break either.

Something I'd flag before this goes in though. infra doesn't have a branch filter, so it applies terraform on every branch that builds, and it deploys index.js from whatever is checked out. #582 and #583 are both sitting on i18n/es, which is two commits behind master, so as soon as this merges a rebuild of either one puts the old function straight back into production. Same goes for the Portuguese branches. A filter on infra would sort it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants