Commit graph

34802 commits

Author SHA1 Message Date
Prem Palanisamy
18fc760077 Remove stale console-key cleanup leftovers 2026-05-14 11:10:19 +01:00
Prem Palanisamy
6c35e86d98 Merge remote-tracking branch 'origin/feat-platform-db-access' into add-api-key-migration
# Conflicts:
#	app/controllers/api/migrations.php
#	app/controllers/shared/api.php
#	composer.json
#	composer.lock
#	src/Appwrite/Platform/Workers/Migrations.php
#	src/Appwrite/Utopia/Response/Model/MigrationReport.php
#	tests/e2e/Services/Migrations/MigrationsBase.php
2026-05-14 11:07:23 +01:00
premtsd-code
beb119883a
Merge branch '1.9.x' into feat-platform-db-access 2026-05-14 08:37:33 +01:00
Prem Palanisamy
1da8d38daf Pin utopia-php/migration to 1.* (resolves 1.12.0) 2026-05-14 08:36:46 +01:00
Harsh Mahajan
05fb3a5d8d
Merge pull request #12304 from appwrite/fix-specs-platform-order
Fix: project specs navigation order
2026-05-14 12:31:41 +05:30
harsh mahajan
5b7d6f1ca6 Fix project specs navigation order 2026-05-14 12:13:13 +05:30
Jake Barnby
a4d1043684
Merge pull request #12302 from appwrite/fix-transaction-deletes
fix: match transactions collection name in deletes worker
2026-05-14 17:48:18 +12:00
Chirag Aggarwal
10de0d4245
Merge pull request #12284 from appwrite/codex/fail-open-abuse-timelimit
Fail open on abuse timelimit failures
2026-05-14 11:02:16 +05:30
Prem Palanisamy
0497137d80 Merge remote-tracking branch 'origin/1.9.x' into feat-platform-db-access
# Conflicts:
#	composer.lock
2026-05-14 06:20:03 +01:00
Prem Palanisamy
f05b55add7 test: use project API key for platform migration E2E; bump migration lock 2026-05-14 06:15:55 +01:00
Chirag Aggarwal
1ced50db1f
Merge remote-tracking branch 'origin/1.9.x' into codex/resolve-12284-conflict
# Conflicts:
#	app/controllers/shared/api.php
2026-05-14 10:43:05 +05:30
Damodar Lohani
64b0cdaab7
Merge pull request #12303 from appwrite/chore/utopia-audit-2.3
chore: bump utopia-php/audit to 2.3.x
2026-05-14 10:19:46 +05:45
Damodar Lohani
bce5fe8e09
Merge branch '1.9.x' into chore/utopia-audit-2.3 2026-05-14 10:07:53 +05:45
Damodar Lohani
6116d113b8 chore: refresh utopia-php/audit to 2.3.2
Picks up the opt-in async cleanup setter (utopia-php/audit#117)
needed for the deletes worker on the cloud side.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 04:20:27 +00:00
Chirag Aggarwal
1fb1cec1b6
Merge pull request #12299 from appwrite/chore/refactor-function-queue-publisher
refactor: Migrate queueForFunctions to FunctionPublisher and FunctionMessage
2026-05-14 08:56:12 +05:30
Damodar Lohani
fe5de129da chore: bump utopia-php/audit to 2.3.x
Brings in cursor pagination (cursorAfter/cursorBefore) and count(max)
support for the activities/audit endpoints. Pulls utopia-php/query 0.1.x
as a new transitive dependency. utopia-php/audit 2.3.x requires PHP 8.4,
satisfied by the appwrite/base:1.4.1 runtime image used on this branch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 03:16:48 +00:00
Jake Barnby
10eae0ab87
fix: match transactions collection name in deletes worker
The DELETE_TYPE_TRANSACTION constant was 'transaction' (singular), so
the worker's inner switch on $document->getCollection() (which returns
'transactions') never matched and every transaction deletion fell to
the default branch, logging "No lazy delete operation available for
document of type: transactions". Renamed to DELETE_TYPE_TRANSACTIONS
to align with every other constant used in that switch.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 13:58:40 +12:00
Prem Palanisamy
e9c16a8fd3 chore(deps): bump utopia-php/migration to feat-platform-db-access 2026-05-13 16:56:09 +01:00
Prem Palanisamy
bddde5f298 Merge remote-tracking branch 'origin/1.9.x' into feat-platform-db-access
# Conflicts:
#	app/controllers/api/migrations.php
#	composer.json
#	composer.lock
#	src/Appwrite/Platform/Workers/Migrations.php
2026-05-13 16:36:39 +01:00
Chirag Aggarwal
85e2cf7d8b
(refactor): Migrate queueForFunctions to FunctionPublisher and FunctionMessage 2026-05-13 18:28:05 +05:30
Luke B. Silver
f6d2314e11
Merge pull request #12298 from appwrite/chore/normalize-span-keys
chore: normalize Span keys and centralize span lifecycle
2026-05-13 12:01:46 +01:00
loks0n
24e108fdbf fix: use canonical project.id/user.id so trace sampler matches realtime and VCS spans
The sampler reads project.id from the span; realtime and VCS were storing it
under namespaced keys (realtime.project.id, vcs.github.event.repo.{id}.project.id),
causing all those spans to be dropped when _APP_TRACE_PROJECT_ID was set.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 11:03:28 +01:00
loks0n
9a016d7727 docs: tighten span tracing section in AGENTS.md
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 10:32:41 +01:00
Chirag Aggarwal
d9987dd645
Fix rate limit headers when abuse check is skipped 2026-05-13 15:00:51 +05:30
loks0n
a0c4b7695e chore: normalize Span keys and centralize span lifecycle
Span attribute keys are now snake_case with dots only for child
relationships. Worker span lifecycle moved to app/worker.php; selective
trace filtering moved to the exporter sampler in app/init/span.php so
handlers only call Span::add.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 10:29:42 +01:00
Chirag Aggarwal
86df9ca14a
Merge pull request #12297 from appwrite/chore/bump-utopia-cache-2
Bump Utopia cache to 2.1
2026-05-13 14:20:14 +05:30
Chirag Aggarwal
476e9de2a8
Bump Utopia cache to 2.1 2026-05-13 12:49:17 +05:30
Jake Barnby
be2bb984c5
Merge pull request #12194 from appwrite/feat-insights-module
feat(insights): add insights module with CTA framework
2026-05-13 17:34:56 +12:00
Jake Barnby
b058eb31f4
(refactor): inline CTAs as JSON on insights collection 2026-05-13 17:10:33 +12:00
Chirag Aggarwal
1c09d93a07
Merge pull request #12295 from appwrite/codex/update-sdk-generator-cover-image
Update SDK generator cover image config
2026-05-13 10:31:35 +05:30
Chirag Aggarwal
31fbc64ad2
Update SDK generator cover image config 2026-05-13 10:19:54 +05:30
Luke B. Silver
35941ddc34
Merge pull request #12220 from appwrite/feat/utopia-http-resources-context
Migrate to utopia-php/http resources/context API
2026-05-12 23:01:29 +01:00
Matej Bačo
7421b29c45
Merge pull request #12292 from appwrite/fix-locale-tests
Fix: avatars tests
2026-05-12 16:53:31 +02:00
Matej Bačo
af0c41dcf5 Fix avatars tests 2026-05-12 16:08:58 +02:00
Jake Barnby
f4133609db
(fix): remove invalid index prefix lengths exceeding column size
The prefix length 700 exceeded the resourceId/parentResourceId column
size of 255 (Database::LENGTH_KEY), crashing the container at startup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-13 02:05:55 +12:00
Jake Barnby
b85ca1536a
(fix): remove redundant null coalesce on always-defined variable
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-13 01:53:33 +12:00
Jake Barnby
304b0dab35
(fix): address greptile P1 review comments
- Add skipFilters to Reports/Get.php (was the only endpoint still
  triggering the full N+1 subquery cascade)
- Scale CTA batch limit dynamically (insightCount * MAX_CTA_COUNT)
  instead of fixed APP_LIMIT_SUBQUERY to prevent silent truncation
- Revert deleteReport to callback-based pagination so CTAs are not
  orphaned when a report has more than APP_LIMIT_SUBQUERY insights
- Add explicit prefix lengths (700) to _key_project_resource and
  _key_project_parent_resource indexes to stay under InnoDB 3072-byte limit
- Validate CTA service/method against ADVISOR_CTA_SERVICES and
  ADVISOR_CTA_METHODS enums in the CTAs validator

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-13 01:42:59 +12:00
Jake Barnby
fdb8e06f12
(test): fix misleading advisor e2e test names and assertions
- Rename testReportsAreReadOnly → testReportsCreateAndUpdateNotExposed
  (reports ARE deletable, they're not read-only)
- Extract testDeleteReportMissing with proper error type assertion
- Rename testInsightsAreReadOnly → testInsightsCreateUpdateDeleteNotExposed
- Fix insight create test to use correct URL (/reports/:id/insights)
  instead of nonexistent /manager/ prefix

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-13 01:15:43 +12:00
Jake Barnby
9da4a3260d
(refactor): improve advisor module perf, security, and maintainability
- Fix N+1 in Reports/XList (51→4 queries) via skipFilters + batch fetch
- Add skipFilters to Reports/Delete and cursor fetch (avoid loading all
  nested insights/CTAs just for ownership check)
- Fix N+1 in deleteReport worker (flat CTA deletion instead of per-insight)
- Add advisor entity cleanup on project deletion (reports, insights, CTAs)
- Remove resourceInternalId, parentResourceInternalId, $permissions from
  Insight response model (internal IDs leak DB internals, permissions unused)
- Remove dead subQueryInsightCTAs filter registration
- Remove stale enum-value comments from platform schema
- Fix _key_dismissedAt index to include projectInternalId
- Fix scope category from 'Other' to 'Advisor'
- Switch action base class from Utopia\Platform\Action to Appwrite\Platform\Action

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-13 01:13:37 +12:00
Jake Barnby
8c8a56ed43
Merge pull request #12273 from appwrite/refactor-target-fetch
fix(messaging): remove redundant user fetch
2026-05-13 01:00:26 +12:00
Matej Bačo
99fad4dca2
Merge pull request #12290 from appwrite/fix-sdk-generator-for-response-enums
Fix: Project SDK enum names
2026-05-12 14:55:48 +02:00
Matej Bačo
b655f24172 Fix warning 2026-05-12 14:49:59 +02:00
Matej Bačo
5a748c2783 PR review fixes 2026-05-12 14:46:33 +02:00
Jake Barnby
87e93c9ff5
Merge pull request #12289 from appwrite/fix/tablesdb-runner-family
chore: pin TablesDB e2e to 8cpu runner
2026-05-13 00:42:36 +12:00
Matej Bačo
0ca52a1bdb Request enum params sdk method name 2026-05-12 14:39:13 +02:00
Jake Barnby
a0ecffe961
chore: pin TablesDB e2e to 8cpu runner
After family=m7 was removed from the default e2e_service runner in #12274,
TablesDB inherits the bare 4cpu runner with no instance-family pinning. Under
paratest_processes: 3 the databases worker can't create attributes fast enough
for the polling loop, producing "Expected 'available', Actual 'processing'"
flakes across unrelated PRs. Match the Databases service override to give
TablesDB its own 8cpu runner.
2026-05-13 00:24:21 +12:00
Matej Bačo
17e9c313f0 Fix response format enum sdk names 2026-05-12 14:17:31 +02:00
Jake Barnby
f9ff1166b9
(perf): batch-fetch CTAs across an insight set to collapse N+1 2026-05-12 23:24:26 +12:00
Chirag Aggarwal
1ca8282944
Remove unused request logError resource 2026-05-12 16:30:31 +05:30
Jake Barnby
4cd35e4d93
Merge branch '1.9.x' into feat-insights-module 2026-05-12 22:59:34 +12:00