Ludovic Vielle
1116fc6bb4
Use clientip.Extract for esign and session IP capture
...
Several HTTP entry points still parsed RemoteAddr directly, so behind
a layer-7 proxy they recorded the load balancer IP instead of the
signer's. Route NDA acceptance, signing events, document sign/approve,
and session updates through clientip.Extract, which honors Forwarded
and X-Forwarded-For when trustedproxy allows them.
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-07-06 16:28:55 +02:00
Sacha Al Himdani
119b20bfbc
Release probod/v0.223.2
...
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-03 17:45:53 +02:00
Sacha Al Himdani
36c9636168
Add blank line before assignment in user test
...
Satisfy wsl_v5 which requires whitespace between a var block and
the following assignment statement.
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-03 17:44:20 +02:00
Sacha Al Himdani
2ffeb7f3e8
Require set-owner authorization to create OWNER membership
...
An organization ADMIN could mint an OWNER membership via createUser, which
only gated iam:membership-profile:create and bypassed the owner-only
iam:membership-role:set-owner check that updateMembership already enforces.
Gate the requested role in both createUser entry points (connect resolver
and the MCP CreateUserTool) with an additional set-owner authorization when
the role is OWNER, mirroring updateMembership. Add a regression test that
locks the ADMIN/OWNER privilege boundary the fix relies on.
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-03 17:37:26 +02:00
Sacha Al Himdani
d359eaefaa
Add code comments Cursor rule
...
Document that comments should be rare and short, reserved for genuinely
surprising behavior or context that cannot live in the code.
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-03 15:37:29 +02:00
Bryan Frimin
83cceb5d00
Release probod/v0.223.1
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-03 12:14:35 +02:00
Bryan Frimin
d03f6077dd
Document disclosed IDOR and GraphQL DoS advisories
...
Add SECURITY_NOTES.md entries for GHSA-c74x-79w6-63jh (cross-tenant
IDOR via unvalidated Finding->Risk and ProcessingActivity->DPO
references) and GHSA-prh2-g8pv-m7p9 (GraphQL alias-flooding DoS),
ahead of public disclosure.
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-03 12:11:22 +02:00
Bryan Frimin
bea410fbb7
Style
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-03 11:53:57 +02:00
Bryan Frimin
b03dad70e0
Add e2e tests
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-03 10:13:00 +02:00
Bryan Frimin
d357d9ded9
Ignore error when partial are ok
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-03 10:13:00 +02:00
Bryan Frimin
7054540e9c
Fix bad id used to call authorize
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-03 10:12:59 +02:00
Bryan Frimin
504cdc8f96
Ignore error when partial are ok
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-03 10:12:59 +02:00
Bryan Frimin
771edcc4fd
Harden LoadByIDs func
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-03 10:11:50 +02:00
Bryan Frimin
a65d1096d6
Add gid set
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-03 10:11:47 +02:00
Sacha Al Himdani
cdb1b679bd
Release probod/v0.223.0
...
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-02 19:39:07 +02:00
Sacha Al Himdani
3a37c957c7
Release prb/v0.199.0
...
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-02 19:36:38 +02:00
dependabot[bot]
dcf3221bb9
Bump the npm-dependencies group with 28 updates
...
Bumps the npm-dependencies group with 28 updates:
| Package | From | To |
| --- | --- | --- |
| [eslint](https://github.com/eslint/eslint ) | `9.39.4` | `10.6.0` |
| [turbo](https://github.com/vercel/turborepo ) | `2.10.0` | `2.10.2` |
| [i18next](https://github.com/i18next/i18next ) | `26.3.3` | `26.3.4` |
| [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router ) | `8.0.1` | `8.1.0` |
| [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core ) | `7.29.7` | `8.0.1` |
| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite ) | `4.3.1` | `4.3.2` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `24.13.2` | `26.1.0` |
| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss ) | `4.3.1` | `4.3.2` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) | `8.1.0` | `8.1.2` |
| [react-dropzone](https://github.com/react-dropzone/react-dropzone ) | `14.4.1` | `15.0.0` |
| [zod](https://github.com/colinhacks/zod ) | `3.25.76` | `4.4.3` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.62.0` | `8.62.1` |
| [@n8n/node-cli](https://github.com/n8n-io/n8n ) | `0.37.1` | `0.37.2` |
| [marked](https://github.com/markedjs/marked ) | `15.0.12` | `18.0.5` |
| [@ariakit/react](https://github.com/ariakit/ariakit/tree/HEAD/packages/ariakit-react ) | `0.4.30` | `0.4.31` |
| [@radix-ui/react-alert-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/alert-dialog ) | `1.1.17` | `1.1.18` |
| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu ) | `2.1.18` | `2.1.19` |
| [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label ) | `2.1.10` | `2.1.11` |
| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover ) | `1.1.17` | `1.1.18` |
| [@radix-ui/react-portal](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/portal ) | `1.1.12` | `1.1.13` |
| [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/scroll-area ) | `1.2.12` | `1.2.13` |
| [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select ) | `2.3.1` | `2.3.2` |
| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs ) | `1.1.15` | `1.1.16` |
| [react-intersection-observer](https://github.com/thebuilder/react-intersection-observer ) | `9.16.0` | `10.0.3` |
| [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser ) | `4.1.8` | `4.1.9` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8 ) | `4.1.8` | `4.1.9` |
| [react-docgen](https://github.com/reactjs/react-docgen/tree/HEAD/packages/react-docgen ) | `7.1.1` | `8.0.3` |
| [posthog-js](https://github.com/PostHog/posthog-js ) | `1.396.1` | `1.396.4` |
Updates `eslint` from 9.39.4 to 10.6.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v9.39.4...v10.6.0 )
Updates `turbo` from 2.10.0 to 2.10.2
- [Release notes](https://github.com/vercel/turborepo/releases )
- [Changelog](https://github.com/vercel/turborepo/blob/main/RELEASE.md )
- [Commits](https://github.com/vercel/turborepo/compare/v2.10.0...v2.10.2 )
Updates `i18next` from 26.3.3 to 26.3.4
- [Release notes](https://github.com/i18next/i18next/releases )
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next/compare/v26.3.3...v26.3.4 )
Updates `react-router` from 8.0.1 to 8.1.0
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router@8.1.0/packages/react-router )
Updates `@babel/core` from 7.29.7 to 8.0.1
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v8.0.1/packages/babel-core )
Updates `@tailwindcss/vite` from 4.3.1 to 4.3.2
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases )
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-vite )
Updates `@types/node` from 24.13.2 to 26.1.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `tailwindcss` from 4.3.1 to 4.3.2
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases )
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/tailwindcss )
Updates `vite` from 8.1.0 to 8.1.2
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v8.1.2/packages/vite )
Updates `react-dropzone` from 14.4.1 to 15.0.0
- [Release notes](https://github.com/react-dropzone/react-dropzone/releases )
- [Commits](https://github.com/react-dropzone/react-dropzone/compare/v14.4.1...v15.0.0 )
Updates `zod` from 3.25.76 to 4.4.3
- [Release notes](https://github.com/colinhacks/zod/releases )
- [Commits](https://github.com/colinhacks/zod/compare/v3.25.76...v4.4.3 )
Updates `typescript-eslint` from 8.62.0 to 8.62.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.1/packages/typescript-eslint )
Updates `@n8n/node-cli` from 0.37.1 to 0.37.2
- [Release notes](https://github.com/n8n-io/n8n/releases )
- [Commits](https://github.com/n8n-io/n8n/commits )
Updates `marked` from 15.0.12 to 18.0.5
- [Release notes](https://github.com/markedjs/marked/releases )
- [Commits](https://github.com/markedjs/marked/compare/v15.0.12...v18.0.5 )
Updates `@ariakit/react` from 0.4.30 to 0.4.31
- [Release notes](https://github.com/ariakit/ariakit/releases )
- [Changelog](https://github.com/ariakit/ariakit/blob/main/packages/ariakit-react/CHANGELOG.md )
- [Commits](https://github.com/ariakit/ariakit/commits/@ariakit/react@0.4.31/packages/ariakit-react )
Updates `@radix-ui/react-alert-dialog` from 1.1.17 to 1.1.18
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/alert-dialog/CHANGELOG.md )
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/alert-dialog )
Updates `@radix-ui/react-dropdown-menu` from 2.1.18 to 2.1.19
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md )
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu )
Updates `@radix-ui/react-label` from 2.1.10 to 2.1.11
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md )
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label )
Updates `@radix-ui/react-popover` from 1.1.17 to 1.1.18
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md )
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover )
Updates `@radix-ui/react-portal` from 1.1.12 to 1.1.13
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/portal/CHANGELOG.md )
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/portal )
Updates `@radix-ui/react-scroll-area` from 1.2.12 to 1.2.13
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/CHANGELOG.md )
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/scroll-area )
Updates `@radix-ui/react-select` from 2.3.1 to 2.3.2
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md )
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/select )
Updates `@radix-ui/react-tabs` from 1.1.15 to 1.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/tabs/CHANGELOG.md )
- [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/tabs )
Updates `react-intersection-observer` from 9.16.0 to 10.0.3
- [Release notes](https://github.com/thebuilder/react-intersection-observer/releases )
- [Commits](https://github.com/thebuilder/react-intersection-observer/compare/v9.16.0...v10.0.3 )
Updates `@vitest/browser` from 4.1.8 to 4.1.9
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md )
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.9/packages/browser )
Updates `@vitest/coverage-v8` from 4.1.8 to 4.1.9
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md )
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.9/packages/coverage-v8 )
Updates `react-docgen` from 7.1.1 to 8.0.3
- [Release notes](https://github.com/reactjs/react-docgen/releases )
- [Changelog](https://github.com/reactjs/react-docgen/blob/main/packages/react-docgen/CHANGELOG.md )
- [Commits](https://github.com/reactjs/react-docgen/commits/react-docgen@8.0.3/packages/react-docgen )
Updates `posthog-js` from 1.396.1 to 1.396.4
- [Release notes](https://github.com/PostHog/posthog-js/releases )
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md )
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.396.1...posthog-js@1.396.4 )
---
updated-dependencies:
- dependency-name: eslint
dependency-version: 10.6.0
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: npm-dependencies
- dependency-name: turbo
dependency-version: 2.10.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: i18next
dependency-version: 26.3.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: react-router
dependency-version: 8.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: npm-dependencies
- dependency-name: "@babel/core"
dependency-version: 8.0.1
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: npm-dependencies
- dependency-name: "@tailwindcss/vite"
dependency-version: 4.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@types/node"
dependency-version: 26.1.0
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: npm-dependencies
- dependency-name: tailwindcss
dependency-version: 4.3.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: vite
dependency-version: 8.1.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: react-dropzone
dependency-version: 15.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: npm-dependencies
- dependency-name: zod
dependency-version: 4.4.3
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: npm-dependencies
- dependency-name: typescript-eslint
dependency-version: 8.62.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@n8n/node-cli"
dependency-version: 0.37.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: marked
dependency-version: 18.0.5
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: npm-dependencies
- dependency-name: "@ariakit/react"
dependency-version: 0.4.31
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@radix-ui/react-alert-dialog"
dependency-version: 1.1.18
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@radix-ui/react-dropdown-menu"
dependency-version: 2.1.19
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@radix-ui/react-label"
dependency-version: 2.1.11
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@radix-ui/react-popover"
dependency-version: 1.1.18
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@radix-ui/react-portal"
dependency-version: 1.1.13
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@radix-ui/react-scroll-area"
dependency-version: 1.2.13
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@radix-ui/react-select"
dependency-version: 2.3.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@radix-ui/react-tabs"
dependency-version: 1.1.16
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: react-intersection-observer
dependency-version: 10.0.3
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: npm-dependencies
- dependency-name: "@vitest/browser"
dependency-version: 4.1.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.1.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-dependencies
- dependency-name: react-docgen
dependency-version: 8.0.3
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: npm-dependencies
- dependency-name: posthog-js
dependency-version: 1.396.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-02 19:16:47 +02:00
Ludovic Vielle
f30e63edd0
Update llm registry gen file
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-07-02 18:58:06 +02:00
Bryan Frimin
21d098afb1
Style
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-02 18:45:51 +02:00
Bryan Frimin
79ba6b480a
Fix range issue
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-02 18:45:50 +02:00
Bryan Frimin
7495d1d5a0
Add range support
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-02 18:45:50 +02:00
Bryan Frimin
8bbbca0d6d
Remove no required header fields
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-02 18:45:49 +02:00
Bryan Frimin
b1cc17ab26
Style
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-02 18:45:49 +02:00
Bryan Frimin
3c7a27b7ff
Use stable url for public file
...
This will allow the CDN infrastructure to cache it properly
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-02 18:45:49 +02:00
Ludovic Vielle
be33f72f7d
Point prb auth login at eu.probo.com and us.probo.com
...
The CLI still defaulted to *.console.getprobo.com for region
selection, examples, and the non-interactive fallback host. Align
those with the current SaaS hostnames so new logins store the right
config keys.
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-07-02 18:25:41 +02:00
dependabot[bot]
a42df02829
Bump the go-dependencies group with 21 updates
...
Bumps the go-dependencies group with 21 updates:
| Package | From | To |
| --- | --- | --- |
| codeberg.org/miekg/dns | `0.6.81` | `0.6.83` |
| [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen ) | `0.17.90` | `0.17.93` |
| [github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sdk-go ) | `1.48.0` | `1.55.0` |
| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2 ) | `1.42.0` | `1.42.1` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2 ) | `1.32.23` | `1.32.27` |
| [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2 ) | `1.19.22` | `1.19.26` |
| [github.com/aws/aws-sdk-go-v2/service/bedrockruntime](https://github.com/aws/aws-sdk-go-v2 ) | `1.53.4` | `1.54.2` |
| [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2 ) | `1.103.2` | `1.104.2` |
| [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2 ) | `1.42.3` | `1.42.5` |
| [github.com/aws/aws-sdk-go-v2/service/ssm](https://github.com/aws/aws-sdk-go-v2 ) | `1.69.3` | `1.69.5` |
| [github.com/pdfcpu/pdfcpu](https://github.com/pdfcpu/pdfcpu ) | `0.12.1` | `0.13.0` |
| [github.com/pires/go-proxyproto](https://github.com/pires/go-proxyproto ) | `0.12.0` | `0.13.0` |
| [github.com/sigstore/sigstore-go](https://github.com/sigstore/sigstore-go ) | `1.2.0` | `1.2.1` |
| [github.com/vektah/gqlparser/v2](https://github.com/vektah/gqlparser ) | `2.5.33` | `2.5.35` |
| [golang.org/x/crypto](https://github.com/golang/crypto ) | `0.52.0` | `0.53.0` |
| [google.golang.org/api](https://github.com/googleapis/google-api-go-client ) | `0.283.0` | `0.287.0` |
| gopkg.in/dnaeon/go-vcr.v4 | `4.0.6` | `4.0.7` |
| [github.com/aws/smithy-go](https://github.com/aws/smithy-go ) | `1.27.1` | `1.27.3` |
| [golang.org/x/mod](https://github.com/golang/mod ) | `0.36.0` | `0.37.0` |
| [golang.org/x/net](https://github.com/golang/net ) | `0.55.0` | `0.56.0` |
| [golang.org/x/term](https://github.com/golang/term ) | `0.43.0` | `0.44.0` |
Updates `codeberg.org/miekg/dns` from 0.6.81 to 0.6.83
Updates `github.com/99designs/gqlgen` from 0.17.90 to 0.17.93
- [Release notes](https://github.com/99designs/gqlgen/releases )
- [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md )
- [Commits](https://github.com/99designs/gqlgen/compare/v0.17.90...v0.17.93 )
Updates `github.com/anthropics/anthropic-sdk-go` from 1.48.0 to 1.55.0
- [Release notes](https://github.com/anthropics/anthropic-sdk-go/releases )
- [Changelog](https://github.com/anthropics/anthropic-sdk-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/anthropics/anthropic-sdk-go/compare/v1.48.0...v1.55.0 )
Updates `github.com/aws/aws-sdk-go-v2` from 1.42.0 to 1.42.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.42.0...v1.42.1 )
Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.23 to 1.32.27
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.23...config/v1.32.27 )
Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.22 to 1.19.26
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.22...credentials/v1.19.26 )
Updates `github.com/aws/aws-sdk-go-v2/service/bedrockruntime` from 1.53.4 to 1.54.2
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/kms/v1.53.4...service/s3/v1.54.2 )
Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.103.2 to 1.104.2
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.103.2...service/s3/v1.104.2 )
Updates `github.com/aws/aws-sdk-go-v2/service/secretsmanager` from 1.42.3 to 1.42.5
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/amp/v1.42.3...service/amp/v1.42.5 )
Updates `github.com/aws/aws-sdk-go-v2/service/ssm` from 1.69.3 to 1.69.5
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.69.3...service/ecs/v1.69.5 )
Updates `github.com/pdfcpu/pdfcpu` from 0.12.1 to 0.13.0
- [Release notes](https://github.com/pdfcpu/pdfcpu/releases )
- [Commits](https://github.com/pdfcpu/pdfcpu/compare/v0.12.1...v0.13.0 )
Updates `github.com/pires/go-proxyproto` from 0.12.0 to 0.13.0
- [Release notes](https://github.com/pires/go-proxyproto/releases )
- [Commits](https://github.com/pires/go-proxyproto/compare/v0.12.0...v0.13.0 )
Updates `github.com/sigstore/sigstore-go` from 1.2.0 to 1.2.1
- [Release notes](https://github.com/sigstore/sigstore-go/releases )
- [Commits](https://github.com/sigstore/sigstore-go/compare/v1.2.0...v1.2.1 )
Updates `github.com/vektah/gqlparser/v2` from 2.5.33 to 2.5.35
- [Release notes](https://github.com/vektah/gqlparser/releases )
- [Commits](https://github.com/vektah/gqlparser/compare/v2.5.33...v2.5.35 )
Updates `golang.org/x/crypto` from 0.52.0 to 0.53.0
- [Commits](https://github.com/golang/crypto/compare/v0.52.0...v0.53.0 )
Updates `google.golang.org/api` from 0.283.0 to 0.287.0
- [Release notes](https://github.com/googleapis/google-api-go-client/releases )
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md )
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.283.0...v0.287.0 )
Updates `gopkg.in/dnaeon/go-vcr.v4` from 4.0.6 to 4.0.7
Updates `github.com/aws/smithy-go` from 1.27.1 to 1.27.3
- [Release notes](https://github.com/aws/smithy-go/releases )
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/aws/smithy-go/compare/v1.27.1...v1.27.3 )
Updates `golang.org/x/mod` from 0.36.0 to 0.37.0
- [Commits](https://github.com/golang/mod/compare/v0.36.0...v0.37.0 )
Updates `golang.org/x/net` from 0.55.0 to 0.56.0
- [Commits](https://github.com/golang/net/compare/v0.55.0...v0.56.0 )
Updates `golang.org/x/term` from 0.43.0 to 0.44.0
- [Commits](https://github.com/golang/term/compare/v0.43.0...v0.44.0 )
---
updated-dependencies:
- dependency-name: codeberg.org/miekg/dns
dependency-version: 0.6.83
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: github.com/99designs/gqlgen
dependency-version: 0.17.93
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: github.com/anthropics/anthropic-sdk-go
dependency-version: 1.55.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2
dependency-version: 1.42.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.27
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/credentials
dependency-version: 1.19.26
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/bedrockruntime
dependency-version: 1.54.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.104.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager
dependency-version: 1.42.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/ssm
dependency-version: 1.69.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: github.com/pdfcpu/pdfcpu
dependency-version: 0.13.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-dependencies
- dependency-name: github.com/pires/go-proxyproto
dependency-version: 0.13.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-dependencies
- dependency-name: github.com/sigstore/sigstore-go
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: github.com/vektah/gqlparser/v2
dependency-version: 2.5.35
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: golang.org/x/crypto
dependency-version: 0.53.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-dependencies
- dependency-name: google.golang.org/api
dependency-version: 0.287.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-dependencies
- dependency-name: gopkg.in/dnaeon/go-vcr.v4
dependency-version: 4.0.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: github.com/aws/smithy-go
dependency-version: 1.27.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-dependencies
- dependency-name: golang.org/x/mod
dependency-version: 0.37.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-dependencies
- dependency-name: golang.org/x/net
dependency-version: 0.56.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-dependencies
- dependency-name: golang.org/x/term
dependency-version: 0.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 18:05:43 +02:00
Sacha Al Himdani
472ad0677c
Release @probo/n8n-nodes-probo/v0.200.0
...
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-02 17:59:04 +02:00
Cursor Agent
82bf5cdfaf
Fix Probo codex node identifier format
...
The n8n marketplace review flagged the codex node field as using
the wrong identifier format. Update it to match the scoped package
name and the probo node name declared in Probo.node.ts.
Signed-off-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: Bryan FRIMIN <bryan@frimin.fr >
2026-07-02 17:54:28 +02:00
Cursor Agent
fb03797fbe
Replace unsupported Probo codex categories
...
Marketplace review flagged Developer Tools and Automation as
unsupported n8n codex category values. Keep Development and use
Utility per review guidance.
Signed-off-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: Bryan FRIMIN <bryan@frimin.fr >
2026-07-02 17:53:06 +02:00
Cursor Agent
b770e226a3
Remove unused requestDefaults from Probo node
...
The Probo node implements execute() directly, so n8n never applies
requestDefaults from the node description. Drop the dead block flagged
in marketplace review.
Signed-off-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: Bryan FRIMIN <bryan@frimin.fr >
2026-07-02 17:49:21 +02:00
Cursor Agent
512fc714de
Update Probo server URLs to us.probo.com and eu.probo.com
...
Replace the legacy console.getprobo.com hostnames in the n8n README
and credential default with the current regional Probo URLs.
Signed-off-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: Bryan FRIMIN <bryan@frimin.fr >
2026-07-02 15:33:44 +00:00
Cursor Agent
b702e34137
Add README to published n8n package
...
The n8n marketplace review requires a README in packages/n8n-node.
Document installation, Probo API credentials, and workflow examples
so users can configure the community node without reading the source.
Signed-off-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: Bryan FRIMIN <bryan@frimin.fr >
2026-07-02 15:00:57 +00:00
Cursor Agent
478e34b82f
Add display names for resource-alias OAuth scopes
...
The OAuth token and consent UIs fall back to the raw scope string when
a label is missing from scopeLabels. Add read and manage labels for
v1:resource-alias so it matches other API scopes.
Signed-off-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: Bryan FRIMIN <bryan@frimin.fr >
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-02 16:31:32 +02:00
dependabot[bot]
ef87fa981d
Bump the github-actions group with 8 updates
...
Bumps the github-actions group with 8 updates:
| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout ) | `6` | `7` |
| [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action ) | `9.2.1` | `9.3.0` |
| [docker/setup-compose-action](https://github.com/docker/setup-compose-action ) | `2.2.0` | `2.3.0` |
| [azure/setup-helm](https://github.com/azure/setup-helm ) | `5.0.0` | `5.0.1` |
| [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance ) | `4.1.0` | `4.1.1` |
| [actions/attest](https://github.com/actions/attest ) | `4.1.0` | `4.1.1` |
| [github/codeql-action/upload-sarif](https://github.com/github/codeql-action ) | `4.32.1` | `4.36.2` |
| [trufflesecurity/trufflehog](https://github.com/trufflesecurity/trufflehog ) | `3.95.5` | `3.95.7` |
Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases )
- [Commits](https://github.com/actions/checkout/compare/v6...v7 )
Updates `golangci/golangci-lint-action` from 9.2.1 to 9.3.0
- [Release notes](https://github.com/golangci/golangci-lint-action/releases )
- [Commits](82606bf257...ba0d7d2ec0 )
Updates `docker/setup-compose-action` from 2.2.0 to 2.3.0
- [Release notes](https://github.com/docker/setup-compose-action/releases )
- [Commits](16feee727c...4eb059ff7f )
Updates `azure/setup-helm` from 5.0.0 to 5.0.1
- [Release notes](https://github.com/azure/setup-helm/releases )
- [Changelog](https://github.com/Azure/setup-helm/blob/main/CHANGELOG.md )
- [Commits](dda3372f75...9bc31f4ebc )
Updates `actions/attest-build-provenance` from 4.1.0 to 4.1.1
- [Release notes](https://github.com/actions/attest-build-provenance/releases )
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md )
- [Commits](a2bbfa2537...0f67c3f485 )
Updates `actions/attest` from 4.1.0 to 4.1.1
- [Release notes](https://github.com/actions/attest/releases )
- [Changelog](https://github.com/actions/attest/blob/main/RELEASE.md )
- [Commits](59d89421af...a1948c3f04 )
Updates `github/codeql-action/upload-sarif` from 4.32.1 to 4.36.2
- [Release notes](https://github.com/github/codeql-action/releases )
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md )
- [Commits](6bc82e05fd...8aad20d150 )
Updates `trufflesecurity/trufflehog` from 3.95.5 to 3.95.7
- [Release notes](https://github.com/trufflesecurity/trufflehog/releases )
- [Commits](d411fff7b8...f446421baf )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
- dependency-name: golangci/golangci-lint-action
dependency-version: 9.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: github-actions
- dependency-name: docker/setup-compose-action
dependency-version: 2.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: github-actions
- dependency-name: azure/setup-helm
dependency-version: 5.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: github-actions
- dependency-name: actions/attest-build-provenance
dependency-version: 4.1.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: github-actions
- dependency-name: actions/attest
dependency-version: 4.1.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: github-actions
- dependency-name: github/codeql-action/upload-sarif
dependency-version: 4.36.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: github-actions
- dependency-name: trufflesecurity/trufflehog
dependency-version: 3.95.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: github-actions
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 16:30:32 +02:00
Cursor Agent
a0329a9696
Raise compliance report upload limit to 30MB
...
Third-party compliance report PDFs were rejected above 10MB in the
upload dialog. Increase the client-side Dropzone limit and enforce the
same cap on the backend file validator.
Signed-off-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: Bryan FRIMIN <bryan@frimin.fr >
2026-07-02 16:20:51 +02:00
Sacha Al Himdani
2fb06d742e
Fix compliance page treating any Slack connector as connected
...
The compliance page rendered a Slack connector as "Connected" whenever
any SLACK connector existed for the org — including one created for an
access review with no channel configured — and only offered Disconnect,
which deletes the shared connector row.
Distinguish channel-configured connections from unconfigured ones and
let users (re)connect in place to pick a channel without first
disconnecting, reusing the existing reconnect-with-union-scopes flow via
connector_id.
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-01 18:04:51 +02:00
Sacha Al Himdani
a651d56c8c
Refactor third parties frontend to page arborescence
...
Mirror the risks refactor (c78a713 ): colocate routes.ts, split the
detail layout query so each child route owns its Loader + Page, rename
tabs/*Tab to resource folders with *Page, move dialogs into
_components/, and extract ThirdPartyRow with its own fragment.
Remove outlet context data passing and deprecated
loaderFromQueryLoader. Delete the monolithic ThirdPartyGraph hook,
colocating each GraphQL operation with its consumer: the create
mutation in CreateThirdPartyDialog (now useMutation + useToast) and
the third-party list queries in ThirdPartiesCell and
ThirdPartiesMultiSelectField (now useQueryLoader + usePreloadedQuery).
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-01 17:43:45 +02:00
Sacha Al Himdani
1df4af4556
Add document webhook events
...
Add a resource-oriented set of webhook events for the document
lifecycle. Each event carries the document plus only the sub-resource
it concerns (version, signature or approval).
Events:
- document.created / updated / archived / unarchived / deleted
- document.version.created / updated / published / rejected / deleted
- document.version.signature.requested / signed / cancelled
- document.version.approval.requested / approved / rejected / voided
Wires the new types through the migration, Go enum, GraphQL schema,
CLI, n8n nodes and the console webhooks settings UI.
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-01 17:13:59 +02:00
Cursor Agent
4cdf8b7913
Wrap Mermaid flowchart labels
...
Long Mermaid node labels rendered as a single constrained line, which
caused text to be clipped in risk assessment diagrams. Share a Mermaid
render configuration that enables flowchart label wrapping before layout
so nodes expand for multi-line labels.
Signed-off-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: Sacha Al Himdani <SachaProbo@users.noreply.github.com >
2026-07-01 14:18:55 +00:00
Sacha Al Himdani
7142757dd8
Add n8n trigger node for Probo webhooks
...
The n8n package could already manage webhook subscriptions through API
CRUD, but had no way to start a workflow when Probo emitted an event. A
user had to drop in the generic Webhook node, create a subscription by
hand, and verify the HMAC signature themselves.
Add a ProboTrigger node that owns the subscription lifecycle: it creates
the subscription on activation pointing at n8n's generated webhook URL,
re-checks and re-registers it if the URL drifts, and deletes it on
deactivation. The webhook handler recomputes the HMAC-SHA256 over the raw
request body and compares it constant-time against the delivered
signature, failing closed when the bytes or headers are absent.
Drop the MEETING_* event choices from the webhook create and update
operations and the CLI event list. They are not part of the backend
WebhookEventType enum, so selecting them only produced API rejections.
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-01 16:06:08 +02:00
Cursor Agent
b61ccfdab8
Keep nested dropdown dismissal local
...
Radix can report a pointer down as outside the dialog while a
portaled select or dropdown is open. When the pointer coordinates
still fall within the dialog content bounds, keep the dialog open so
the child popup can close without discarding form state.
Signed-off-by: Cursor Agent <cursoragent@cursor.com >
2026-07-01 13:38:42 +00:00
Ludovic Vielle
a3b65a6449
Release probod/v0.222.2
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-07-01 12:09:45 +02:00
Ludovic Vielle
e22aaa8b67
Omit empty fields from bootstrap config output
...
probod-bootstrap was writing empty strings and stub blocks such as
`esign: {}` into generated YAML. The post-marshal prune pass caused
part of that by stripping empty leaf strings while leaving empty
parent maps behind.
Drop the prune round-trip in WriteConfig and rely on struct-level
omitzero/omitempty tags plus custom IsZero() helpers on probodconfig.
Only include LLM providers when an API key is set, use a nil map for
extra API headers, and extend the dev-config Makefile recipe with the
local dev defaults already documented in .env.example.
Config loading is unchanged: omitted keys still decode to Go zero
values.
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-07-01 11:47:43 +02:00
Ludovic Vielle
2be3e18437
Release probod-bootstrap/v0.4.1
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-07-01 00:07:10 +02:00
Ludovic Vielle
e27c4b99ff
Release probod/v0.222.1
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-07-01 00:04:15 +02:00
Ludovic Vielle
35ea262691
Drop string defaults duplicated in probod.New()
...
probod-bootstrap was repeating probod.New() literals for string
env vars. Map those fields with getEnv only and leave int and bool
defaults in the builder. Runtime and generated yaml pick up probod
defaults when a variable is unset; dev and Helm still set env vars
explicitly where needed.
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-06-30 23:49:54 +02:00
Bryan Frimin
3d5fac8682
Release helm/v0.10.0
...
Signed-off-by: Bryan Frimin <bryan@getprobo.com >
2026-06-30 19:41:27 +02:00
Bryan Frimin
125bac4a32
Release @probo/n8n-nodes-probo/v0.199.0
...
Signed-off-by: Bryan Frimin <bryan@getprobo.com >
2026-06-30 19:41:10 +02:00
Bryan Frimin
c7ca36b767
Release probod-bootstrap/v0.4.0
...
Signed-off-by: Bryan Frimin <bryan@getprobo.com >
2026-06-30 19:40:49 +02:00
Bryan Frimin
bc581eebf9
Release probod/v0.222.0
...
Signed-off-by: Bryan Frimin <bryan@getprobo.com >
2026-06-30 19:40:36 +02:00