Commit Graph

121 Commits

Author SHA1 Message Date
Chirag Aggarwal d2230f8fe7 chore: bump PHPStan to level 4 and fix all new errors
Raises `phpstan.neon` level from 3 to 4 and fixes the 549 new errors
that level 4 surfaces across 157 files. Fixes are root-cause — no
`@phpstan-ignore`, no `@var` casts, no baseline entries, no widened
types. A handful of latent bugs were fixed along the way:

- `app/controllers/general.php`: path-traversal guard was negating
  `\substr(...)` before the strict comparison (`!\substr(...) === $base`
  was always `false === $base`). Rewritten as `\substr(...) !== $base`.
- `src/Appwrite/Platform/Modules/Databases/Http/Databases/Logs/XList.php`
  and `.../TablesDB/Logs/XList.php`: were importing the raw Matomo
  `DeviceDetector` (whose `getDevice()` returns `?int`) but treating the
  result as an array with `deviceName/deviceBrand/deviceModel` keys.
  Swapped to `Appwrite\Detector\Detector`, matching the wrapper already
  used a few lines below for `$os`/`$client`.
- `src/Appwrite/Platform/Modules/Functions/Workers/Builds.php`: a match
  key was checking `$resourceKey === 'functions'` when `$resourceKey`
  is `'functionId'|'siteId'` — always false. Switched to the intended
  `$resource->getCollection() === 'functions'` check.
- `src/Appwrite/OpenSSL/OpenSSL.php`: `encrypt()` return type tightened
  to `string|false` to match `openssl_encrypt`; this lets callers'
  `=== false` error handling remain meaningful.
- `app/controllers/api/messaging.php`: removed a dead
  `array_key_exists('from', [])` branch in the Msg91 provider (empty
  array literal; branch was unreachable).

Large cleanup categories across the 549 fixes:
- Removed redundant `?? default` on array offsets and expressions that
  PHPStan now knows are non-nullable.
- Removed unreachable statements (mostly `return;` after `throw` or
  `markTestSkipped()`).
- Removed redundant `is_array`/`is_string`/`is_bool`/`instanceof` checks
  on already-narrowed types.
- Added `default =>` arms (or throwing arms) to non-exhaustive matches
  on `string`/`mixed` input.
- Removed dead `$document === false` branches where method return types
  were tightened to non-nullable `Document`.
- Removed unused properties (`$version` on Etsy/Zoom OAuth2, `$paths` on
  Installer State, `$source` on MigrationsWorker, `$account2` on two
  GraphQL auth tests), unused traits (`ApiVectorsDB`, `DatabaseFixture`),
  and an unused `cleanupStaleExecutions` task method.
- Replaced `assertTrue(true)` and redundant `assertIsArray`/`assertIsString`/
  `assertNotNull` assertions with `addToAssertionCount(1)` or
  `assertNotEmpty` where the runtime type was already known.
2026-04-19 17:31:20 +05:30
Jake Barnby 006867617b Fix parallel test assertions and graceful runtime cleanup
- Fix testListProjectKey: use dynamic key counts instead of hardcoded 5
  (parallel workers don't share state from testCreateProjectKey)
- Fix testGetProjectKey: expect 'Key Test' from setupProjectWithKey(),
  not 'Key Custom' from a previously-dependent test
- Handle 404 in Executor::deleteRuntime() (runtime already gone)
- Make cancel deployment cleanup best-effort (status already updated)
- Apply same fix to Sites cancel endpoint

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:23:55 +13:00
Chirag Aggarwal a80209ddbd fix cookie parsing 2026-02-10 11:45:10 +05:30
loks0n 50c6a35079 feat: multiple app domains 2025-12-11 09:01:31 +00:00
Matej Bačo b75952071e Support array headers for set-cookie 2025-09-03 17:32:15 +02:00
Matej Bačo ee225834d9 Fix default param syntax 2025-06-26 21:39:00 +02:00
Matej Bačo df902d2624 Fix account tests using old token 2025-06-26 20:47:59 +02:00
Chirag Aggarwal 276a294391 chore: update createExecution 2025-06-26 13:37:43 +05:30
Chirag Aggarwal 8bf3a8bf5d chore: add runtimeEntrypoint param 2025-06-26 13:29:06 +05:30
loks0n bc41838c66 chore: remove endpoint selector 2025-06-12 14:22:17 +01:00
loks0n 3d9e22a6df chore: remove endpoint selector for edge 2025-06-12 14:18:05 +01:00
loks0n 33dc7ea97c feat: bypass gateway 2025-05-18 23:23:06 +01:00
Matej Bačo 5a0b22f638 Fix after merge 2025-04-08 11:09:12 +02:00
Matej Bačo 8e32ef1851 Merge branch '1.7.x' into feat-sites 2025-04-08 10:41:39 +02:00
Fabian Gruber 0ae70f8321 feat: inject executor instead of creating a new instance 2025-04-07 09:53:38 +02:00
Fabian Gruber 954ed45a36 feat: update appwrite to use generic S3 adapter 2025-04-07 09:53:38 +02:00
Matej Bačo 536319b440 PR review changes 2025-03-12 11:32:43 +01:00
Matej Bačo 994e2faa42 OPR v5 + Flutter starter 2025-03-11 18:19:25 +01:00
Matej Bačo 232f99c6c9 Finalize PR, review changes, fix tests 2025-03-08 16:50:39 +01:00
Khushboo Verma f830918c7c Add logic to detect rendering strategy and fallback file 2025-02-25 16:19:30 +05:30
Matej Bačo 3aafceab40 Improve CI/CD flaky tests 2025-02-03 11:38:36 +01:00
Matej Bačo 47f4e67a52 Fixing bug post-merge 2025-02-03 11:03:58 +01:00
Khushboo Verma 4c1881324e Use compute vars for functions and sites 2024-10-27 17:22:45 +01:00
Khushboo Verma 7f17efcdd8 Resolve merge conflicts 2024-10-27 15:43:52 +01:00
Matej Bačo ea6765c68a Support static sites 2024-10-26 18:43:30 +02:00
Khushboo Verma 03d4d4c8fa Add build env vars for sites 2024-10-26 12:29:42 +02:00
Jake Barnby c58fa78962 Remove tenant in filter 2024-09-05 14:25:11 +12:00
Bradley Schofield 5285ef9939 Merge remote-tracking branch 'origin/1.6.x' into feat-runtime-controls-1.5.x 2024-08-14 19:36:15 +09:00
Bradley Schofield e51f912ab1 Address Jake's comments and add 0.5 cpu spec 2024-08-06 18:54:46 +09:00
Matej Bačo bce06a6178 Supply autorestart to executor 2024-08-03 09:14:19 +00:00
Khushboo Verma d43039387e Merge branch '1.6.x' into fix-disabled-function-logging 2024-07-29 11:19:36 +05:30
Bradley Schofield 4f558d35be Improvement v3 -> v4 transition 2024-07-22 19:42:29 +09:00
Khushboo Verma 0970d784ff Handle false appended to string 2024-07-16 16:10:17 +05:30
Bradley Schofield 824a70f936 Move Runtime Controls PR to 1.5.x 2024-07-12 18:25:57 +09:00
Khushboo Verma 4ef42c9cf8 Fix execution duration and add test 2024-07-03 18:05:08 +05:30
Matej Bačo 5fb41fd216 Fix executions 2024-07-03 08:00:17 +00:00
Khushboo Verma aab4665701 Resolve merge conflict 2024-07-02 15:02:58 +05:30
Khushboo Verma ead0b93900 Resolve merge conflict 2024-07-02 14:59:15 +05:30
Matej Bačo f87e2bc879 Binary support & tests for Router 2024-07-01 10:35:06 +02:00
Matej Bačo 7bdcd5c436 Multipoart support 2024-07-01 06:57:18 +00:00
Khushboo Verma 0edbec4f44 OPR v4 support 2024-06-25 15:03:07 +05:30
loks0n 863a2ce0a9 chore: matej review 2024-05-20 11:44:08 +01:00
loks0n 4d572d4a05 chore: errors.php 2024-05-20 11:05:53 +01:00
loks0n 3d119ad1a6 fix: improve cold start error 2024-05-17 18:16:10 +01:00
Eldad Fux 8ed1da4ea8 Updated getEnv to use system lib 2024-04-01 13:02:47 +02:00
Ben Humphries fbd277f6aa executor: pass build timeout to runtimes (#7350)
open-runtimes executor (v1/runtimes) supports passing a timeout parameter that defaults to 600 seconds.

->param('timeout', 600, new Integer(), 'Commands execution time in seconds.', true)

https://github.com/open-runtimes/executor/blob/main/app/http.php#L383

This change passes the _APP_FUNCTIONS_BUILD_TIMEOUT env var.
2024-01-04 11:46:08 +01:00
Matej Bačo b6ce679b93 Merge branch '1.4.x' into cl-1.4.x 2023-10-04 10:46:38 +02:00
Matej Bačo 891960a977 Fix realtime logs container name 2023-10-04 10:16:02 +02:00
Matej Bačo 515fec2858 Linter fix 2023-09-30 11:57:15 +02:00
Matej Bačo d9f2f1c37b Introduce execution sync timeout 2023-09-30 11:54:54 +02:00