Commit Graph

386 Commits

Author SHA1 Message Date
Émile Ré
48a494461e Add proboctl CLI and move seed commands into it
Introduce a new proboctl Cobra CLI for Probo instance management
that connects directly to PostgreSQL. Move the standalone
common-third-parties-import and common-tracker-patterns-import
commands into proboctl as `proboctl seed common-third-parties`
and `proboctl seed common-tracker-patterns`, replacing flag-based
PG connection with a shared factory pattern.

Signed-off-by: Émile Ré <emile@probo.com>
2026-05-18 19:05:09 +04:00
Émile Ré
4e5958502c Add back GNUMakefile targets that were inadvertedly removed
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-05-07 12:05:13 +04:00
Bryan Frimin
ac526fb54d Split release into per-track packages
Each shippable artifact (prb, probod server group, probod-bootstrap,
@probo/n8n-nodes-probo, @probo/cookie-banner) now has its own version
file, its own CHANGELOG.md, its own annotated-tag scheme of the form
<track>/v<version>, and its own GitHub Actions release workflow. The
unified release.yaml is removed; the unified CHANGELOG.md becomes a
short index pointing at each per-track file, with the prior history
preserved in CHANGELOG.archive.md.

Probod's CHANGELOG carries the post-split monorepo releases (0.174.0
through 0.181.0) so the server-group history stays continuous and the
probod docker image keeps its existing version line.

contrib/claude/release.md is split into contrib/claude/release/ with
one entrypoint per track plus a README that drives the agent: detect
which tracks have user-facing commits since their last tag and skip
tracks with no relevant changes, so a release request never tags an
unchanged track. The cookie-banner and n8n-node entrypoints add an
explicit npm run build step after the version bump (build.mjs bakes
package.json's version into __SDK_VERSION__) so compile errors and
package-lock.json updates are caught before tagging.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-05-06 16:04:36 +02:00
Bryan Frimin
59d2ae99aa Release v0.181.0
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-05-05 11:34:30 +02:00
Sacha Al Himdani
eacfcf8558 Release v0.180.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-05-04 14:46:01 +02:00
Émile Ré
01bc3ac696 Release v0.179.1 2026-05-02 22:18:18 +04:00
Émile Ré
2212cb82e3 Release v0.179.0 2026-05-02 21:45:17 +04:00
Émile Ré
8e5c586c95 Release v0.178.0 2026-05-01 16:34:57 +04:00
Émile Ré
7648edd770 Release v0.177.1 2026-04-30 17:31:04 +04:00
Émile Ré
f0e6538943 Release v0.177.0
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-30 15:24:17 +04:00
Sacha Al Himdani
e5b489ce32 Release v0.176.1
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-29 18:18:46 +02:00
Sacha Al Himdani
3ff7885ad1 Release v0.176.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-29 16:45:24 +02:00
Émile Ré
5629c8ccc0 Release v0.175.0 2026-04-29 18:05:54 +04:00
Émile Ré
5e78592024 Add sandbox boot logs cmd
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-29 12:48:44 +04:00
Émile Ré
cd73bc1d2d Create targets for generate and embed, replace SKIP_APPS with WITH_APPS
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-29 12:48:43 +04:00
Émile Ré
6a05c22356 Use variable for target name
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-29 12:48:43 +04:00
Sacha Al Himdani
be294599ec Release v0.174.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-28 13:36:07 +02:00
Émile Ré
011057f52a Release v0.173.0
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-24 19:24:28 +04:00
Aurélien Sibiril
509d0c88b1 Add vendor assessment agent
Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
2026-04-24 08:43:14 +02:00
Sacha Al Himdani
ff175e3d0d Release v0.172.1
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-23 12:19:30 +02:00
Sacha Al Himdani
240645a9f8 Release v0.172.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-23 11:25:41 +02:00
Sacha Al Himdani
e51940b1b1 Release v0.171.1
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-22 16:57:10 +02:00
Bryan Frimin
910029aeb4 Release v0.171.0
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-04-22 14:29:52 +02:00
Émile Ré
c8e3d139e1 Remove proboctl internal admin CLI
The set-branding functionality it provided is no longer needed.

Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-22 15:22:03 +04:00
Émile Ré
55bb2a7953 Add proboctl internal admin CLI with cookie-banner set-branding command
New staff-only CLI that connects directly to PostgreSQL (via PG_*
env vars) to manage parameters not exposed through the public API.
First command: proboctl cookie-banner set-branding <id> <true|false>

Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-22 15:22:02 +04:00
Sacha Al Himdani
565b71526c Pass ACME root CA to dev config generation
The dev-config Make target was missing the ACME_ROOT_CA env var,
causing probod to fail with an untrusted certificate error when
connecting to the local Pebble ACME server.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-21 19:28:56 +02:00
Bryan Frimin
fbc10a8591 Move dev env file to repo root
Use the conventional .env / .env.example location at the repo
root instead of cfg/dev.env / cfg/dev.env.example. .env is what
contributors expect, keeps cfg/ a pure generated-config directory,
and shares the same file if we ever add another dev target that
needs the same overrides.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-04-21 18:51:34 +02:00
Bryan Frimin
b87611d99a Tighten dev-config ergonomics
Apply the review feedback on the dev-config target:

- Treat cfg/dev.env as a prerequisite via $(wildcard ...) so edits
  to it re-trigger cfg/dev.yaml without the dev having to delete
  the output first; update the help string accordingly.
- Drop the @ silence prefix on the recipe body so failures are
  debuggable; the values are all known dev placeholders, no leak.
- Call out in cfg/dev.env.example that the file is sourced as a
  POSIX shell snippet (not Docker-compose .env semantics), and
  list the previously-missing overrides: observability addrs,
  PG_DEBUG, SMTP auth/TLS, AUTH_COOKIE_DURATION, and the
  per-worker LLM knobs (probo-agent, evidence-describer).

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-04-21 18:28:36 +02:00
Bryan Frimin
ab0e59ad71 Generate cfg/dev.yaml via a Make target
Committing a fully-materialised cfg/dev.yaml hid the dev
configuration surface and blocked the OAuth2 signing-key inlining
change: the new config requires a per-dev private key that must
not be committed. Replace the checked-in file with a dev-config
Make target that shells out to probod-bootstrap with dev-safe
defaults and a stable RSA signing key stashed under
cfg/.dev-oauth2-signing-key.pem on first run.

The recipe sources cfg/dev.env when present so devs can override
any setting without editing the Makefile; cfg/dev.env.example
ships the full list of overridable knobs. cfg/dev.yaml,
cfg/dev.env, and the signing key are all gitignored.

Update README, CONTRIBUTING, and contrib/claude/config.md to
describe the new workflow.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-04-21 18:20:07 +02:00
Bryan Frimin
c4e81ed092 Inline OAuth2 signing key in config
The OAuth2/OIDC server accepted its signing key via a file path
(key-file), while every other PEM key in the probod config (SAML
private key, ACME account key) is embedded inline. Switch the
field to a private-key string so the convention is uniform.

The signing key is operator-supplied material that must outlive
any process restart, so the bootstrap builder now treats
OAUTH2_SERVER_SIGNING_KEY as required and refuses to start
without one; silently minting a fresh key per boot would break
token validation across rollouts. The OAUTH2_SERVER_* env vars
otherwise flow through builder.Build like the existing SAML
block so the new OAuth2Server section is populated end-to-end.

Rework the e2e harness to render its config via bootstrap at
test setup, which removes the static
e2e/console/testdata/config.yaml and the previously generated
test-only PEM file. A per-run RSA key is minted via
bootstrap.GenerateOAuth2SigningKey (kept public for test
tooling) and injected through the builder env map. CI now
passes ACME_ROOT_CA inline instead of mutating a YAML on disk.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-04-21 17:56:00 +02:00
Sacha Al Himdani
f7070c43a4 Serialize gqlgen codegen to fix build cache race
Parallel gqlgen instances race on the Go build cache, causing
Rewriter.getSource() to panic with "slice bounds out of range"
when go/packages returns empty source. Chain gqlgen targets with
order-only prerequisites in the Makefile and switch the CI build
job to sequential generation.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-20 16:33:58 +02:00
Sacha Al Himdani
db852522a4 Release v0.170.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-17 14:58:14 +02:00
Sacha Al Himdani
5e4cc337ef Release v0.169.1
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-16 12:17:13 +02:00
Sacha Al Himdani
7fe2184e9b Release v0.169.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-16 09:18:15 +02:00
Sacha Al Himdani
a58abd445a Release v0.168.2
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-15 14:47:36 +02:00
Sacha Al Himdani
b7f6f27677 Release v0.168.1
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-15 14:11:10 +02:00
Sacha Al Himdani
ef86a6bf60 Release v0.168.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-15 13:11:39 +02:00
Émile Ré
fe1b5dae4e Review fixes
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-15 09:24:48 +04:00
Émile Ré
31abc31454 Replace npm run relay with make relay everywhere
The make relay target merges split graphql files into a single
schema.graphql before running the Relay compiler. All CI workflows,
the generate target, and documentation now use make relay.

Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-15 09:19:41 +04:00
Émile Ré
00b233aa03 Fix Relay generating null query text for mutations
Relay v20 treats extend type in server schema as client extensions,
causing all mutation fields to have "text": null in generated artifacts.

Replace the cat-based schema concatenation with a merge script that
collects all extend type Mutation blocks and produces a single
type Mutation definition. The split graphql/ files remain the source
of truth for gqlgen; the merged schema.graphql is generated for Relay.

Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-15 09:19:41 +04:00
Émile Ré
1962ec07ab Fix stale references to schema.graphql and v1_resolver.go
Update GNUmakefile targets to use wildcard graphql/*.graphql
prerequisites instead of the deleted schema.graphql files, and
remove v1_resolver.go from build prerequisites.

Also update .gitattributes, package.json graphql.schema path,
and AGENTS.md.

Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-15 09:19:41 +04:00
Émile Ré
74d7d3ff25 Upgrade Relay to v20.1.1 and unify compiler config
Consolidate the two per-app relay configs (console and trust)
into a single multi-project relay.config.json at the repo root
with three projects: core, iam, and trust. Bump all relay
packages from v19 to v20.1.1 and move relay-compiler to the
root devDependencies. Replace per-workspace relay scripts with
a single root-level npm run relay command and update the
GNUmakefile, CI workflows, and docs accordingly.

Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-14 16:04:11 +04:00
Sacha Al Himdani
f08abf3be2 Release v0.167.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-14 13:33:33 +02:00
Aurélien Sibiril
fe8163b757 Use go generate in genmodels target
Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
2026-04-13 18:25:11 +02:00
Aurélien Sibiril
adeef0d5cb Make genmodels a manual-only target
The model registry fetches from an external API so it should
not run as part of the regular generate/build pipeline. Replace
the automatic generate dependency with a standalone genmodels
target.

Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
2026-04-13 18:25:11 +02:00
Aurélien Sibiril
8bd68f6d33 Wire model registry into generate and clean targets
Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
2026-04-13 18:25:10 +02:00
Sacha Al Himdani
39c02beef3 Release v0.166.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-13 17:40:56 +02:00
Sacha Al Himdani
3ca0fac939 Release v0.165.3
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-10 20:50:06 +02:00
Sacha Al Himdani
77d493d5ed Release v0.165.2
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-10 19:40:16 +02:00
Sacha Al Himdani
ba386d188b Release v0.165.1
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-09 19:41:08 +02:00