Commit graph

67 commits

Author SHA1 Message Date
Matej Bačo
8cf0438a98 Merge branch '1.9.x' into feat-public-organization-api 2026-05-19 17:20:33 +02:00
Matej Bačo
f37e091b77 Fix specs generation 2026-05-14 17:50:36 +02:00
ArnabChatterjee20k
7f6482a7d2 Merge remote-tracking branch 'origin/1.9.x' into presence-api 2026-05-13 11:12:23 +05:30
Jake Barnby
4cd35e4d93
Merge branch '1.9.x' into feat-insights-module 2026-05-12 22:59:34 +12:00
Matej Bačo
443ebac71c Finish project response model 2026-05-11 11:56:22 +02:00
Jake Barnby
a8f33ab964
Merge branch '1.9.x' into presence-api 2026-05-07 19:13:57 +12:00
Jake Barnby
6c6782dd28
Merge remote-tracking branch 'origin/1.9.x' into pr-12194-feat-insights-module
# Conflicts:
#	app/config/scopes/project.php
2026-05-06 20:33:40 +12:00
Jake Barnby
00565ea471
refactor(insights): metadata-only CTAs, platform DB, reports parent
Address review feedback on PR #12194:

- Pivot CTAs to pure descriptors (id/label/action/params). Drop the
  server-side execution layer: Action interface, registry, the
  databases.indexes.create CTA action, the params validator, the
  /v1/insights/:id/ctas/:id/executions endpoint, the InsightCTAExecution
  model, the INSIGHT_CTA_* errors, and the corresponding events. The
  console invokes the existing public API directly with the descriptor's
  action + params.

- Restore Databases\Indexes\Action.php to its pre-CTA shape and inline
  the index-create body back into Create.php (the createIndex helper
  was added solely for CTA reuse).

- Move insights collection from project DB to platform DB and add a
  parent reports collection alongside it. Insights carry projectId /
  projectInternalId for tenant scoping and an optional reportId for
  grouping. List endpoints filter by projectInternalId; Get/Update/
  Delete also enforce project ownership before touching the document.

- New Reports module with full CRUD (Create/Get/XList/Update/Delete),
  Report response model, Reports query validator, REPORT_NOT_FOUND /
  REPORT_ALREADY_EXISTS errors, reports.read / reports.write scopes,
  and reports.* event tree. Delete cascades to child insights.

- Update.php now mutates the loaded document via setAttribute (instead
  of passing a partial new Document), reuses CTAsValidator (instead of
  the looser ArrayList<JSON> + isset check), and rejects duplicate CTA
  ids.

- Create.php enforces unique CTA ids during normalization.

- CTAsValidator gained a configurable maxCount (default 16) so the
  Create path matches the Update path and the DB column size, and
  oversized payloads return a clean 400.

- Validator\Queries\Insights adds status and reportId to
  ALLOWED_ATTRIBUTES so dismissal / report workflows are filterable.

- Realtime channel parser guards $parts[1] for both insights and
  reports event names.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 13:46:07 +12:00
ArnabChatterjee20k
bca876acaf Merge remote-tracking branch 'origin/1.9.x' into big-int 2026-05-05 18:55:11 +05:30
Jake Barnby
cd539d972a
refactor(insights): capitalise CTA acronym in identifiers
Project-specific override of the default camelCase-acronyms convention:
namespaces, class names, file paths, and SDK method names use `CTA` in
all caps. Touches all insights surfaces — directories, response models,
validators, container resource keys, and SDK method names like
`createInsightCTAExecution`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 14:27:45 +12:00
Jake Barnby
da5a137b98
refactor(insights): nest CTA execution and dismissal as sub-resources
Move POST /v1/insights/:id/dismiss to /v1/insights/:id/dismissals
and POST /v1/insights/:id/ctas/:ctaId/trigger to
/v1/insights/:id/ctas/:ctaId/executions, with the corresponding
class moves into Http/Insights/Dismissal/Create.php and
Http/CTA/Execution/Create.php. Rename the response model to
InsightCtaExecution and update events.php to surface dismissal
and execution as resource events with create verbs. The reshape
matches the rest of the API where verbs hang off plural sub-resources.
2026-05-01 14:04:31 +12:00
Jake Barnby
e1ddcd051c
feat(insights): add schema, scopes, events, errors, constants
Wires the platform glue for insights: the `insights` collection on the
project database, the `insights.read` / `insights.write` scopes, the
`insights.[insightId]` event tree (including the nested `ctas.[ctaId].trigger`
event), the typed exceptions, and the runtime CTA registry resource.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 12:40:28 +12:00
ArnabChatterjee20k
06a05311a4 Merge remote-tracking branch 'origin/1.9.x' into presence-api 2026-04-29 15:04:20 +05:30
Matej Bačo
e75fc5b859 Add list scopes endpoint for Console 2026-04-29 10:08:31 +02:00
ArnabChatterjee20k
b08f3bdc52 Merge remote-tracking branch 'origin/1.9.x' into presence-api 2026-04-29 11:29:59 +05:30
Matej Bačo
980762fc3e Rename from dynamic key to ephemeral key (api keys) 2026-04-28 17:18:06 +02:00
Matej Bačo
b2ce95a0cd Dynamic key backwards compatibility 2026-04-28 16:14:10 +02:00
ArnabChatterjee20k
8d378720b0 add presence API metrics and usage tracking 2026-04-28 17:19:24 +05:30
Matej Bačo
cb4cff120b Add Keycloak oauth support 2026-04-28 10:54:13 +02:00
Matej Bačo
49e6a38e7f Add fusionauth oauth 2026-04-28 10:43:16 +02:00
Matej Bačo
d25707346f Add console oauth endpoint 2026-04-28 09:47:27 +02:00
Matej Bačo
b28b851bb2 microsoft oauth endpoint 2026-04-27 15:49:44 +02:00
Matej Bačo
a781325679 Add oauth read operations 2026-04-27 14:47:47 +02:00
Matej Bačo
15f94d99ca Add Kick OAuth adapter 2026-04-27 14:02:30 +02:00
Matej Bačo
e4bfb38a57 add okta provider 2026-04-26 11:14:50 +02:00
Matej Bačo
d25dac7d60 Manual quality improvmenets 2026-04-26 10:29:41 +02:00
Matej Bačo
ffd0dbd406 Add OIDC endpoint 2026-04-25 10:20:00 +02:00
Matej Bačo
d9d87f813f apple oauth endpoints 2026-04-24 16:31:21 +02:00
Matej Bačo
db7acd4b8b More OAuth endpoints 2026-04-24 15:02:36 +02:00
Matej Bačo
a62ca8612d More OAuth endpoints 2026-04-24 14:31:38 +02:00
Matej Bačo
8cdcd379c8 Add more oauth endpoints 2026-04-24 14:15:34 +02:00
ArnabChatterjee20k
053d25c64e Merge remote-tracking branch 'origin/1.9.x' into presence-api 2026-04-24 17:29:39 +05:30
Matej Bačo
fe08978851 More OAuth provider endpoints 2026-04-24 12:58:32 +02:00
Matej Bačo
c097d9fcdd Dropbox adapter 2026-04-24 12:20:48 +02:00
Matej Bačo
335b1c2f6c Figma OAuth endpoint 2026-04-24 11:45:59 +02:00
Matej Bačo
36435d940d Add Discord OAuth endpoint 2026-04-24 11:35:30 +02:00
Matej Bačo
7fbfb6266b GitHub oauth response model 2026-04-24 10:56:39 +02:00
Matej Bačo
cef7a5197f List policies API 2026-04-23 13:24:39 +02:00
Matej Bačo
eeadba3b59 Add missing endpoint in email templates 2026-04-22 11:36:54 +02:00
Matej Bačo
2e42633e12 Add public mocks API for phones 2026-04-22 11:30:39 +02:00
Matej Bačo
e06b06a21b
Merge branch '1.9.x' into feat-fallback-email-template 2026-04-17 11:53:40 +02:00
ArnabChatterjee20k
6bd3821804
Merge branch '1.9.x' into presence-api 2026-04-17 12:16:56 +05:30
Chirag Aggarwal
807e8bec8b feat(specs): add discriminator for provider repository list response union
Add ProviderRepositoryFrameworkList and ProviderRepositoryRuntimeList
model classes with conditions and type field so the listRepositories
endpoint's oneOf response gets a discriminator on the type property.
2026-04-16 16:29:42 +05:30
Matej Bačo
0da185e689 Refactor fixes 2026-04-15 18:17:55 +02:00
ArnabChatterjee20k
c5d5946fd2 updated scopes 2026-04-13 21:08:17 +05:30
ArnabChatterjee20k
af41c64135 Merge remote-tracking branch 'origin/1.9.x' into presence-api 2026-04-13 20:47:32 +05:30
ArnabChatterjee20k
14351c7338 updated model 2026-04-13 20:28:31 +05:30
ArnabChatterjee20k
229ab28427 Merge remote-tracking branch 'origin/1.9.x' into big-int 2026-04-09 11:15:59 +05:30
ArnabChatterjee20k
77d195f0c3 updated response models 2026-03-30 16:17:44 +05:30
Matej Bačo
644840ec66 Refactor to new platforms interfaces 2026-03-27 13:45:58 +01:00