Commit Graph
34816 Commits
Author SHA1 Message Date
Levi van Noort 702a8a83a0 test: add assertion for action execution logs content in SitesCustomServerTest 2026-05-11 10:30:08 +02:00
Levi van Noort 5be05da5ca Merge branch '1.9.x' into migrate-away-from-blacksmith-based-runners 2026-05-11 10:27:46 +02:00
Levi van Noort fe5e5b8891 refactor: enhance execution log checks in SitesCustomServerTest 2026-05-11 10:17:55 +02:00
Jake Barnby add56d7365 chore: select 2026-05-11 19:54:48 +12:00
Jake Barnby 5c09d726ba fix(messaging): remove redundant user fetch 2026-05-11 19:51:26 +12:00
Jake BarnbyandClaude Opus 4.7 db4cb5361d fix(databases): fall back to project DSN when database attr is empty
`getDatabasesDB` used `??` to fall back from a database doc's `database`
attribute to the project DSN, but `??` only triggers on null. Migration
destinations end up with an empty-string `database` (the value is copied
from the source DB but isn't a valid DSN on the destination's pool),
which slipped past the fallback and surfaced as a 500 with
`new DSN('mysql://')` in the catch block. Use elvis so empty strings
fall back too.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 19:12:48 +12:00
Jake BarnbyandClaude Opus 4.7 ad02ad3f81 fix(advisor): fall back to direct insight lookup beyond subquery cap
The report's embedded insights subquery is capped at APP_LIMIT_SUBQUERY,
so insights past position 1000 would 404 even though they exist. Try
the embedded slice first, then fall back to a scoped direct lookup.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 18:23:20 +12:00
Prem Palanisamy a902c25363 refactor(migrations): extract destination DSN resolver to named method
Replaces the inline match closure with resolveDestinationDatabaseDsn(),
mirroring cloud's worker. Adds a docblock explaining why documentsdb /
vectorsdb keep the source DSN.
2026-05-11 06:52:23 +01:00
premtsd-code 04a6eaf5d4 Merge branch '1.9.x' into feat-bump-sdk-23 2026-05-11 05:54:00 +01:00
Prem Palanisamy f0fb7bf877 test: remove orphaned VectorsDB testGetCollectionLogs
Endpoint deleted in 96fe989f6d ("update composer dependencies and remove
obsolete log classes") but the two test methods calling it were left
behind. They have been failing with 404 on every PR since.
2026-05-11 05:53:03 +01:00
Prem Palanisamy 74fbbea2b3 chore: bump utopia-php/abuse cfd290a + migration 447a987 (PHP >=8.2) 2026-05-11 05:41:37 +01:00
copilot-swe-agent[bot]andabnegate 735be3e892 fix(advisor): align nested insights list SDK method naming
Agent-Logs-Url: https://github.com/appwrite/appwrite/sessions/7e091450-e0b2-4c2c-98a7-ba964e5436ca

Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-05-11 03:25:41 +00:00
copilot-swe-agent[bot]andabnegate 49bf1198b2 refactor(advisor): polish constants aliases and insight lookup helper
Agent-Logs-Url: https://github.com/appwrite/appwrite/sessions/517a4586-d3e8-40b3-a3a9-f2d2ca82b0a0

Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-05-11 02:08:29 +00:00
copilot-swe-agent[bot]andabnegate 9186ce3f24 chore(advisor): document null index prefix lengths in reports index
Agent-Logs-Url: https://github.com/appwrite/appwrite/sessions/517a4586-d3e8-40b3-a3a9-f2d2ca82b0a0

Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-05-11 02:05:20 +00:00
copilot-swe-agent[bot]andabnegate bfd6cebbb0 fix(advisor): address review comments on tests, naming, docs, and get insight
Agent-Logs-Url: https://github.com/appwrite/appwrite/sessions/517a4586-d3e8-40b3-a3a9-f2d2ca82b0a0

Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-05-11 01:59:31 +00:00
Prem Palanisamy 4957f568cd chore: bump utopia-php/migration to 4dc7270 (empty teams guard) 2026-05-11 02:38:01 +01:00
Prem Palanisamy 64c9d8d85f chore: bump utopia-php/migration to a9bdfba (revert deno fallback) 2026-05-11 02:28:07 +01:00
Prem Palanisamy 7b5cb379c4 chore: bump utopia-php/migration to e5dc657 (deno runtime fallback) 2026-05-11 02:21:18 +01:00
Prem Palanisamy fd625fca7b fix(migrations): preserve source DSN for documentsdb/vectorsdb resolver
Migration lib 1.10.2's getDatabaseDSN resolver returns the value
written into destination's _databases.database. The previous resolver
always returned the project's main DSN (mongodb in default CI) for
every database type, including documentsdb / vectorsdb — which are
routed to their own adapters (mongodb / postgresql) per
_APP_DB_ADAPTER_DOCUMENTSDB / _APP_DB_ADAPTER_VECTORSDB.

The wrong DSN routed vectorsdb attribute creates back to mongodb,
producing 'Vector types are not supported by the current database'
on the MixedDatabases / VectorsDB migration tests.

Mirror cloud's resolver: keep the source DSN for documentsdb /
vectorsdb (they target dedicated hosts), use destination project's
main DSN otherwise.
2026-05-10 22:09:39 +01:00
Matej Bačo e45e5a09f4 Reorder tests to make them pass 2026-05-10 13:19:18 +02:00
Matej Bačo e3dc30ad93 PR review fixes 2026-05-10 12:03:05 +02:00
Matej Bačo 0406d9e04d improve copy 2026-05-10 11:13:23 +02:00
Matej Bačo fbfde6cc77 Implement google oauth prompt param. 2026-05-10 11:11:47 +02:00
Matej Bačo c6f91e18c4 Merge pull request #12254 from appwrite/fix-sateless-git-hints
Fix: Stateless git hints
2026-05-10 10:14:51 +02:00
Matej Bačo 6db1d2e5c0 Merge pull request #12256 from appwrite/chore-google-oauth-dual-read
Chore: Dual read for google oauth secret
2026-05-10 10:14:30 +02:00
Prem Palanisamy 817172c460 Merge branch '1.9.x' into feat-bump-sdk-23
# Conflicts:
#	composer.lock
2026-05-10 05:54:06 +01:00
Prem Palanisamy cd445ceccf chore: bump utopia-php/migration to 6deabc6 (Sites::create named args) 2026-05-10 05:49:23 +01:00
Chirag Aggarwal 87a32f65ee Merge pull request #12182 from appwrite/add-codex-plugin 2026-05-10 09:26:49 +05:30
Prem Palanisamy 698fde247f chore: bump utopia-php/migration to 0e88268 (createVariable variableId fix) 2026-05-10 04:46:40 +01:00
Matej Bačo 0e939ea9d7 PR review fixes 2026-05-09 12:58:47 +02:00
Matej Bačo a5ddc465e6 PR review fixes 2026-05-09 12:53:11 +02:00
Matej Bačo 76a41d70b0 Dual read for google oauth secret
Will allow future support for more params
2026-05-09 10:51:46 +02:00
Matej Bačo 43777ee6d9 Add unit tests for github hints 2026-05-09 10:16:19 +02:00
Matej Bačo 6ee2196fae Fix git hint regnerating nonstop 2026-05-09 09:54:54 +02:00
Jake BarnbyandClaude Opus 4.7 8fa9ead279 chore: merge 1.9.x into feat-insights-module
Resolves conflict in app/init/constants.php (kept 4327 cache buster, took 1.9.4 stable version).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 17:59:01 +12:00
Jake BarnbyandClaude Opus 4.7 83c0a32494 fix(advisor): make reports.target a TEXT column
target stores free-form URLs or resource IDs. URLs in the wild can
exceed the prior 2048-char cap, so switch the column to VAR_TEXT
(65535). The _key_project_target index already declares an explicit
700-char prefix length, so indexing still works on both MariaDB and
MongoDB.

Bump APP_CACHE_BUSTER for the schema change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 12:42:29 +12:00
Jake BarnbyandClaude Opus 4.7 b830c08257 fix(advisor): use VAR_TEXT for free-form fields
Switch markdown summaries, JSON CTA params, and the embedded
insights/ctas subQuery payloads from sized VAR_STRING to VAR_TEXT.
None of these fields are indexed and they all hold free-form data, so
removing the artificial size cap means we never have to revisit the
limit when an analyzer surfaces a longer report.

- reports.summary, insights.summary: markdown, no upper bound enforced
- reports.insights, insights.ctas: subQuery virtuals carrying full
  child rows
- insightCTAs.params: JSON parameter blob for arbitrary CTA actions

Bump APP_CACHE_BUSTER for the schema change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 12:30:45 +12:00
Jake BarnbyandClaude Opus 4.7 b747c97561 fix(advisor): address review comments on scopes and schema
- Register dedicated reports.write scope and switch deleteReport to it
  so cloud can issue narrowly-scoped delete keys without granting
  insights.write.
- Make insights.parentResourceInternalId optional with null default to
  match its companion parentResourceType/parentResourceId fields and
  unblock insights with no parent (e.g. database-level performance
  insights).
- Tighten Insight.reportId model description: insights always belong to
  a report, ad-hoc insights are not supported.
- Add reports.write to default test API key and admin role so existing
  e2e tests using serverHeaders() can hit the delete endpoint.
- Bump APP_CACHE_BUSTER for the schema change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 12:18:39 +12:00
Jake Barnbyandgreptile-apps[bot] e27997dcbc Update src/Appwrite/Insights/Validator/CTAs.php
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-05-09 12:06:09 +12:00
copilot-swe-agent[bot]andabnegate 6b64eb85b3 fix(advisor): require null-default VAR_ID schema fields
Agent-Logs-Url: https://github.com/appwrite/appwrite/sessions/38cebef5-ed45-4283-9097-d48dd0fafb06

Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-05-09 00:00:28 +00:00
Prem Palanisamy 5313460c7c fix(migrations): pass destination project DSN resolver to DestinationAppwrite
Migration lib's `_databases.database` resolver now defaults to empty
when no callable is supplied (utopia-php/migration ff3b444). The
runtime falls back via `$project->getAttribute('database')`, but tests
hit DSN("mysql://") and a 500 because that fallback is also empty for
fresh test projects.

Pass an explicit resolver returning the destination project's `database`
attribute so migrated databases store a usable DSN.
2026-05-08 17:53:09 +01:00
Prem Palanisamy c94ae409e8 chore: refresh composer.lock for utopia-php/fetch ^1.1 and logger 0.8.* 2026-05-08 16:50:04 +01:00
Prem Palanisamy 4844a4bf99 Merge branch '1.9.x' into feat-bump-sdk-23
# Conflicts:
#	composer.lock
2026-05-08 16:34:19 +01:00
Prem Palanisamy 687698001f chore: bump utopia-php/migration to 80e9a04 (SDK 23 nested typed object fixes) 2026-05-08 16:30:02 +01:00
Jake BarnbyandClaude Opus 4.7 5ba92c7ff4 test(proxy): clean up rules before deleting their site
testCreateRedirectRule reassigned $ruleId for the second redirect rule,
so only the second was tracked, and cleanupSite was called before
cleanupRule. Site deletion cascades to its rules, so cleanupRule then
saw a 404 and the strict assertEquals(204) blew up.

Track both rule IDs and tear them down before the site so the asserted
204 actually fires.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 02:09:48 +12:00
Jake BarnbyandClaude Opus 4.7 a23555783f test(advisor): initialise project before getNewKey
testReadWithAdvisorScopes called getNewKey() as its first action, but
getNewKey reads self::$project['$id'] without triggering project
creation. ParaTest runs each test method in a fresh worker, so
self::$project is empty until getProject() is called. The empty id
produced /v1/projects//keys, which doesn't match any route and 404s.

Call getProject() first, like every other consumer of getNewKey.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 01:49:22 +12:00
Harsh Mahajan acc0b2c184 Merge pull request #12252 from appwrite/fix/repository-branch-pagination-validator
fix: Support branch query validators in SDK generation
2026-05-08 19:18:04 +05:30
harsh mahajan 10e4341db2 Support branch query validators in SDK generation 2026-05-08 19:15:17 +05:30
Jake BarnbyandClaude Opus 4.7 83cf47e3fd fix(advisor): correct index lengths to fit MongoDB 1024 limit
The reports `_key_project_target` index was failing to create on MongoDB
because target's full size (2048) plus targetType (64) exceeded the 1024
character maximum. Set explicit lengths to truncate target to 700 chars
(total 765, under both Mongo 1024 and MariaDB 768 limits).

Also drop redundant explicit lengths from VAR_ID positions in the
insights and insightCTAs indexes — the validator rejects explicit
lengths on VAR_ID attributes, and they default to length 1 anyway.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 01:29:01 +12:00
Chirag Aggarwal 8a35e87cfd Merge pull request #12251 from appwrite/fix/graphql-preview-test-assertions 2026-05-08 18:13:14 +05:30