feat: initial La Gaufre v2 integration service

Multi-stage Docker image that:
- Builds lagaufre.js v2 widget from suitenumerique/integration source
  (context must be sunbeam/ root; see sunbeam build integration)
- Serves the widget, official La Suite SVG logos, custom logos for
  drive/mail/people, and a v1-compat gaufre.js wrapper via nginx

gaufre.js reveals the ui-kit GaufreButton (adds lasuite--gaufre-loaded
to <html>), loads the v2 widget, and wires button clicks via event
delegation to survive React hydration replacing the initial DOM element.

services.json is the only runtime-variable file; it is mounted from the
integration-config ConfigMap which contains the deployed service list
with DOMAIN_SUFFIX substituted at apply time.
This commit is contained in:
2026-03-03 16:09:21 +00:00
commit 14a01dd5e7
7 changed files with 158 additions and 0 deletions

6
logos/drive.svg Normal file
View File

@@ -0,0 +1,6 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<!-- Folder tab -->
<path d="M4 20v-4a3 3 0 013-3h9.17l3.41 3.41A2 2 0 0021 17h20a3 3 0 013 3v2H4z" fill="#e1000f"/>
<!-- Folder body -->
<path d="M4 22h40v16a4 4 0 01-4 4H8a4 4 0 01-4-4V22z" fill="#000091"/>
</svg>

After

Width:  |  Height:  |  Size: 320 B

6
logos/mail.svg Normal file
View File

@@ -0,0 +1,6 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<!-- Envelope body -->
<path d="M4 14h40v22a2 2 0 01-2 2H6a2 2 0 01-2-2V14z" fill="#000091"/>
<!-- Envelope fold (chevron) -->
<path d="M4 14l20 15 20-15H4z" fill="#e1000f"/>
</svg>

After

Width:  |  Height:  |  Size: 286 B

10
logos/people.svg Normal file
View File

@@ -0,0 +1,10 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<!-- Person 2 head (behind) -->
<circle cx="30" cy="13" r="7" fill="#e1000f"/>
<!-- Person 2 body (behind) -->
<path d="M18 38c0-6.627 5.373-12 12-12s12 5.373 12 12H18z" fill="#e1000f"/>
<!-- Person 1 head (front) -->
<circle cx="18" cy="13" r="7" fill="#000091"/>
<!-- Person 1 body (front) -->
<path d="M6 38c0-6.627 5.373-12 12-12s12 5.373 12 12H6z" fill="#000091"/>
</svg>

After

Width:  |  Height:  |  Size: 489 B