Project

General

Profile

Actions

Feature #126

closed
RA

Feature #78: Rendre accessibles des pages publiques via liens uniques sans authentification

Backend — chargement public d'une ressource par resource_id (SharedLink)

Feature #126: Backend — chargement public d'une ressource par resource_id (SharedLink)

Added by Redmine Admin about 2 months ago. Updated about 1 month ago.

Status:
Shipped
Priority:
Normal
Assignee:
-
Start date:
06/15/2026
Due date:
% Done:

0%

Estimated time:
spec_ref:
build_status:
build_number:
ci_run_url:
scan_status:
scan_report_url:
deploy_status:
deployed
preprod_url:
deployed_at:
06/23/2026
branch:
feat/126-public-load-by-id
pr_url:
https://github.com/Scobby-organisation/scobby/pull/17
security_key:
severity:
paused:

Description

Parent : #78. **Suivi de #87/#88.**

Lacune identifiée pendant le dev de #88 : `resolveSharedLink` (#87) renvoie `{resource_type, resource_id}`, mais il n'existe **pas** de fonction publique chargeant les données de la ressource par `resource_id`. Les fonctions publiques existantes (`getPublicRoadmap`, `getPublicContract`, `getPressSpace`) sont indexées par leur propre token, pas par un `resource_id` validé via SharedLink. Le dispatcher #88 passe donc le token SharedLink à ces fonctions, ce qui ne rend pas les données de bout en bout (sauf si les tokens coïncident).

À faire : ajouter des fonctions PUBLIC (hors guard) qui, **à partir d'un token SharedLink validé**, chargent et renvoient les données de la ressource cible par `resource_id` (feuille de route, contrat, espace presse). Câbler #88 dessus.

## Acceptance criteria
- [ ] Une fonction publique charge la ressource (roadmap/contrat/presse) par `resource_id` après validation du token SharedLink.
- [ ] Le dispatcher `PublicSharedLink` (#88) affiche les vraies données pour les 4 types, sans auth.
- [ ] Token révoqué/expiré → pas de données (« Lien invalide »).
- [ ] Tests backend + lint/typecheck verts.

Actions

Also available in: PDF Atom