fiskaltrust / fiskaltrust/docs
KBA to docs: France
- Dominant language
- MDX
- Stars
- 0
- Forks
- 0
- Avg merge
- 5d 15h
- Merged PRs (30d)
- 18
Description
Pilot market. Analysis of the export is complete; the results are below.
## The export
Two Dynamics 365 entities, two generations of the same knowledge base:
| | `dbo.kbarticle` | `dbo.knowledgearticle` |
|---|---|---|
| Numbering | KBA-01000…01042 | KA-01000…01057 |
| Rows / unique articles | 39 / 39 | 132 / **57** |
| Created | 2018–2020, frozen | 2019–2026, active |
| Body | `articlexml`, Question/Answer sections | free-form HTML in `content` |
`kbarticle` is the legacy CRM *Article* entity Microsoft deprecated; `knowledgearticle` is its replacement. The migration happened around 2021 and the old set was never cleaned up, so part of the legacy content was rewritten as KAs and the rest is v1-era material.
Two notes on reading the export:
- The CSV is shifted by −2 against the `SELECT` column list from roughly index 48 onward — `articlepublicnumber` is at 69, not 71. Deduplication was done against D365's own `islatestversion` flag.
- `content` is capped at 65,535 characters. Only KA-01020 v1.0 hit the cap; its v2.0 is intact, so nothing was lost.
**96 articles reviewed: 57 KA + 39 KBA.**
## Disposition
- **~27 KA** fold into the docs (MERGE or FAQ)
- **11 duplicate clusters** collapse (EN/FR pairs; invitations are covered three times over by KA-01006/01014/01029, SIREN/SIRET three times by KA-01011/01030/01050)
- **8 KA** deferred as PROCESS
- **10 KA** discarded
- **39 KBA** → harvest 7, discard 32
---
## Existing pages that absorb content
- [ ] `posdealers/technical-operations/middleware/configuration.md` ← **KA-01051**, KA-01054 — `UseNewCopyReceipt`, the queue custom-config flag that fixes sign-request timeouts and slow printing. This is a *queue* parameter, not a launcher parameter, so it needs its own subsection rather than a row in Table 1. **Appears nowhere in the repo today.**
- [ ] `posdealers/technical-operations/middleware/configuration.md` ← **KBA-01021** — timeout defaults for queue, balancer, REST helper and serial-port helper, plus the rule that helper timeouts must exceed queue timeouts. Values need verification.
- [ ] `posdealers/technical-operations/troubleshooting/network-troubleshooting.md` ← **KA-01052** — *"The underlying connection was closed: an unexpected error occurred on a send"*: cashbox misconfiguration or blocked ports. Goes under `## Common errors`.
- [ ] `posdealers/technical-operations/rollout-automation/api-templating.md` ← **KA-01047** — quotation marks in a CashBox-creation request break the JsonParser. Goes under `### Escaping the template`.
- [ ] `posdealers/getting-started/operator-onboarding/invitation-process.md` ← **KA-01005, 01006, 01014, 01029, 01042** — delete an invitation; resend the confirmation link; find an old invitation through the protocol; and the PosOperator-initiated *Request assignment PosDealer* path for when the address already belongs to another PosDealer. The `### Options with invited PosOperators` section already exists.
- [ ] `posdealers/getting-started/operator-onboarding/invitation-process.md` ← **KA-01026, 01027** — postal codes outside AT/DE/FR: leading zeros, alphanumeric formats, embedded spaces. Prefer CSV or API import over manual entry.
- [ ] `posdealers/getting-started/company-roles.md` ← **KA-01001, 01015, 01056** — change the primary contact; grant role rights to employees; and the HTTP 500 / *cannot act as PosOperator* case, which is a missing read-write plus delegation permission.
- [ ] `posdealers/business-basics/management-portal.md` ← **KA-01020** — the *Basic receipt check* compliance indicator on Configuration → Queue, the four checks it runs, and the fact that a failure is sticky.
- [ ] `posdealers/business-basics/management-portal.md` ← **KA-01053** — read-only Master Data and Configuration access is sufficient for a financial auditor; point to the fiscal-archive user guide and the TaxAuditorTool.
- [ ] `posdealers/technical-operations/middleware/supported-environments.md` ← **KBA-01006** — Terminal Server / Hyper-V needs no special precautions. Verify.
- [ ] `poscreators/getting-started/onboarding-posdealers.md` ← **KA-01021, 01023, 01028** — upload a certificate or self-attestation to a PosSystem, and the catch that PosOperators only see it once the PosDealer is assigned to that PosSystem. The `Management of PosSystems in Details` block is the home.
- [ ] `poscreators/getting-started/middleware-integration.md` ← **KA-01025** — §3.1.1 documents the Postman collection against a local queue; add the ChaîneCloud variant (`base_url`, plus `cashboxid` and `accesstoken` as headers).
- [ ] `poscreators/middleware-doc/middleware-fr-…/operation-modes/operation-modes.md` ← **KA-01007** — Entity Framework + SQL connection strings for FR. Equivalents exist for DE and IT under `on-premise-databases/entity-framework.md`; FR has none, and the FR page is largely a skeleton of empty headings.
- [ ] `poscreators/middleware-doc/middleware-fr-…/receipt-case-definitions/receipt-case-definitions.md` ← **KBA-01015** — a receipt is mandatory for returns and negative sales. Verify against current FR rules.
## FR market partials that are currently stubs
`_compliance.mdx`, `_data.mdx` and `_terms-of-service.mdx` contain the literal text `## country-specific details in progress`.
- [ ] `_markets/fr/overview/legal-data-protection/data-protection/_data.mdx` ← **KA-01017** — data categories, processing locations, storage regions, and the rule that `*.fiskaltrust.fr` traffic and its mass data stay in Azure France-Central. Regions need verification.
- [ ] `_markets/fr/overview/legal-data-protection/compliance-requirements/_compliance.mdx` ← **KBA-01010** — €7,500 per non-compliant system, 60-day remediation window, fine renewable after that. Amount and legifrance references need verification.
- [ ] `_markets/fr/getting-started/operator-onboarding/master-data/…` ← **KA-01011** (reference half), **KA-01030, 01050** — what SIREN and SIRET are; SIRET is the base value for the fiskaltrust.SecurityMechanism, so it must be verified *before* any configuration is created; both fields lock after verification; why verification fails, and the sirene.fr / INSEE escalation path.
- [ ] `_markets/fr/technical-operations/middleware/network-requirements/_proxy.mdx` ← **KBA-01020** — the WinHTTP auto-proxy-detection race at boot. Only if still reproducible on Launcher 2; the generic `proxy` parameter is already documented in `network-requirements.md#proxy-setups`.
## One new page
Nothing in the repo covers a local Middleware that will not start. `cashbox-failures.md` is about the Portal's Metrics view, not a dead service.
- [ ] **New:** `posdealers/technical-operations/troubleshooting/middleware-startup-failures.md`, registered in `posdealers/toc.js`.
| Section | Source |
|---|---|
| Windows service does not start, or does not start at boot | KA-01008 — delayed start, `DependOnService` |
| `pad-block corrupted` on start | KA-01040, 01041 — rebuild the configuration, else rename `-configuration.json` |
| HTTP 500 on start | KA-01034, 01035 — several launcher copies on disk; check the service's executable path |
| `PopulateFtJournalFRCopyPayloadTable did not return correct number of copyreceipts` | KA-01032, 01033 — CNumerator against an empty test database |
| Empty `ftSignatures` in a ChaîneCloud sandbox | KA-01048 — the SCU is not active until a start receipt is sent |
| Corrupt SQLite database | KA-01010, 01031 — `pragma integrity_check`, dump and rebuild. Refresh the stale sqlite-tools 3.36 link and keep the "never run this on a productive till" warning |
| SQLite database is locked | KA-01039 — thin; may fold into the section above |
## Dependencies on the KB to remove
- [ ] `_markets/fr/technical-operations/troubleshooting/troubleshooting-guide/_trouble.mdx` — its entire body is a link to `portal.fiskaltrust.fr/KBArticle`.
- [ ] `posdealers/technical-operations/troubleshooting/troubleshooting-guide.md` — step 1 of Table 1 says "read the KBA and the FAQ".
- [ ] `posdealers/information-sources/knowledge-base.md` — a whole page on the Portal KB feature.
## Deferred as PROCESS
KA-01003 (replace a queue after a stop receipt) · KA-01009 (update an offline ChaîneLocale) · KA-01011 tail (SIREN/SIRET change, with the full daily/monthly/annual closing and archive sequence) · KA-01012 (switch offline ↔ online) · KA-01013 (create a local ChaîneLocale end to end) · KA-01018 (offline launcher deployed for online use) · KA-01036/01037 (update a queue) · KA-01038 (defective hardware) · KA-01043 (ChaîneCloud / Premium Bundle rollout) · KBA-01040 (anatomy of an FR sale receipt request and response)
## Discarded, for the record
**Empty or contentless (6):** KA-01000, 01002, 01004, 01024, 01046 (*"resolution steps are not provided"*), 01057 (one-line case note).
**Internal business process, not product documentation (3):** KA-01044 (sending a KBIS for invoice processing), KA-01045 (exporting an aging report), KA-01055 (a REST Helper ticket mixed with an internal OData pagination and timeout postmortem).
**No usable resolution (1):** KA-01049 — cause *"information not provided"*, resolution *"back up and resend the logs"*.
**Legacy KBA, superseded or obsolete (32):** KBA-01000–01005, 01009, 01011–01014, 01016–01019, 01022–01033, 01036–01039, 01041, 01042 — Windows XP, WSDL and SOAP against `fiskaltrust.Service` v1.0/1.1, Mono, and topics already re-covered by the KA set or the repo.
## Open items needing a human
The repo is the source of truth in a conflict, but it is *silent* on these, so they cannot be settled from it:
1. **`UseNewCopyReceipt`** — still the recommended fix, or now the default? It is the resolution in two separate 2026 articles and appears nowhere in the repo.
2. **Timeout defaults** from KBA-01021 (queue 15, balancer 15, REST 15, and the serial-port values).
3. **The €7,500 penalty** and its legifrance references — 2018 vintage.
4. **Data-processing regions** in KA-01017 — 2021 vintage.
5. **KA-01019** (Mono ≤ 6.8, `$TMPDIR` space) — a Launcher v1 constraint. Drop, or keep for v1 installations?
6. **KBA-01020** — does the WinHTTP proxy race still affect Launcher 2?
7. **KA-01013** tells readers to pick "package version 1.2"; current guidance must replace it.
8. **v0 vs v2.** `poscreators/middleware-doc/possystem-api/migration-guide.md` states that the v0 SignatureCloud API and `ifPOS.v0` — the FR and AT stack — are legacy and receive no new features, with migration to the POSSystem API v2 strongly recommended. A large share of these KBAs describe v0 workflows. We should decide whether merged content is framed as legacy-stack guidance, or annotated with a pointer to the migration guide.
## Notes for the other markets
- The docs are written in **English throughout**, including every `_markets/fr/*.mdx` partial. 32 of the 57 FR KAs are in French, so this is a translate-and-rewrite job, not a copy job. Expect the same for DE.
- The FR market has several near-empty partials that KBA content fits neatly into. Worth checking the same for AT and DE before deciding a KBA has no home.
- `isinternal` is useless for telling public content from internal — every row carries the same placeholder. Internal-versus-public has to be judged from the body.
Contributor guide
Research direction
Start by selecting one unchecked target such as configuration.md or middleware-startup-failures.md, then read the existing page and its cited KA/KBA entries. Check the unresolved verification items with a maintainer before editing; the new troubleshooting page also requires registration in posdealers/toc.js. Done means the selected source material is translated, rewritten into the named section, and obsolete KB links are removed where applicable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, markdown, postman, sql, sqlite
- Domain
- content, documentation, localization
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100