Compare commits

..
Author SHA1 Message Date
fogelito 3b86d23151 Message 2026-02-12 12:13:14 +02:00
fogelito 71a4e515cc check queries 2026-02-12 12:12:33 +02:00
fogelito 1116370745 remove var dump 2026-02-12 09:07:23 +02:00
fogelito 6e498beb03 Merge branch 'joins2' of https://github.com/appwrite/appwrite into joins-feature 2026-02-11 15:44:34 +02:00
fogelito f97d272085 Update 1.8.x 2026-02-11 15:43:39 +02:00
fogelito 1a3c4d7b6c Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	composer.json
#	composer.lock
2026-02-11 15:22:11 +02:00
fogelito 77c69ce793 add tests 2026-02-11 15:20:47 +02:00
fogelito b41eb48611 test select queries 2026-02-11 12:13:47 +02:00
fogelito 53174fb3e0 Merge branch 'joins2' of https://github.com/appwrite/appwrite into joins-feature 2026-02-11 09:54:56 +02:00
fogelito a770e6c289 framework 0.33.38 2026-02-11 09:53:53 +02:00
fogelito 2633654859 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2 2026-02-11 09:14:48 +02:00
fogelito be676cf349 Merge branch 'joins2' of https://github.com/appwrite/appwrite into joins-feature 2026-02-11 08:58:40 +02:00
fogelito c1b9f75d47 pull 1.8.x 2026-02-11 08:56:30 +02:00
fogelito 7fd25eb380 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2 2026-02-11 08:56:07 +02:00
fogelito f3b79f96ab lock 2026-02-11 08:49:44 +02:00
fogelito 45ce82c5c6 addJoinCollectionId 2026-02-10 16:56:38 +02:00
fogelito f76b9a8700 Merge branch 'joins2' of https://github.com/appwrite/appwrite into joins-feature
# Conflicts:
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/XList.php
2026-02-10 12:28:41 +02:00
fogelito 0e4dbcca22 pull 1.8.x 2026-02-10 12:26:51 +02:00
fogelito aa3b6b462d Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	composer.lock
2026-02-10 12:26:31 +02:00
fogelito a0797868fd addJoinCollection 2026-02-10 12:24:49 +02:00
fogelito 997aafc646 $join->setCollection 2026-02-10 12:20:36 +02:00
fogelito a456ae5acb Update database lib 2026-02-10 12:11:31 +02:00
fogelito c2e7daaf1e feature 2026-02-10 12:10:28 +02:00
fogelito 922950929a Insert Data 2026-02-08 17:02:32 +02:00
fogelito 21af384227 Update migration lib 2026-02-08 14:26:19 +02:00
fogelito 3574d89012 fix constructSubscriptions 2026-02-08 12:02:18 +02:00
fogelito b0e47fbb2c fix compile 2026-02-08 11:53:56 +02:00
fogelito 1762b9d2ec fix VCS 2026-02-08 11:11:37 +02:00
fogelito 79d8ada95d Pull 1.8.x 2026-02-08 10:59:45 +02:00
fogelito affe208d1a Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	app/controllers/api/vcs.php
#	composer.lock
2026-02-08 10:56:27 +02:00
Jake BarnbyandGitHub 0a53c677b1 Merge branch '1.8.x' into joins2 2026-02-05 07:29:47 +00:00
fogelito 0e709f1f97 pull 1.8.x 2026-02-03 09:21:53 +02:00
fogelito 0c514d5696 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2 2026-02-03 09:20:58 +02:00
fogelito da45edcd46 Merge branch 'chore-upgrade-cache' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	composer.lock
2026-02-03 08:42:44 +02:00
fogelito 396b152bcf Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2 2026-02-03 08:36:29 +02:00
fogelito d811fb00d9 fix select queries 2026-02-02 16:04:50 +02:00
fogelito 0520eea383 Merge branch 'chore-upgrade-cache' of https://github.com/appwrite/appwrite into joins2 2026-02-02 15:43:56 +02:00
fogelito 8051b6f64e lock 2026-02-02 15:23:58 +02:00
fogelito 406fd1b94a Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	composer.lock
2026-02-02 15:23:38 +02:00
fogelito 6a70a1958f database 5 2026-02-02 15:13:45 +02:00
fogelito b222f4e4bb Merge branch 'chore-upgrade-cache' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	composer.json
2026-02-02 15:13:07 +02:00
fogelito 66babf9dae Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	composer.lock
2026-02-02 13:37:49 +02:00
fogelito 0adacef23f Run migrations tests 2026-01-28 11:11:28 +02:00
fogelito bcd69e34ce lock 2026-01-28 10:30:52 +02:00
fogelito 6775b9505a inline 2026-01-28 08:58:45 +02:00
fogelito 4967887797 lock 2026-01-28 08:57:13 +02:00
fogelito 971e1270d7 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2 2026-01-28 08:50:42 +02:00
fogelito be6c0a63f1 Update lock 2026-01-28 08:50:21 +02:00
fogelito 5e5f5ef49f Run tests 2026-01-27 16:41:05 +02:00
fogelito bafb326ef7 Comments 2026-01-26 15:25:46 +02:00
fogelito f030631e6e Pull changes 2026-01-26 10:56:52 +02:00
fogelito 1b8462d2e2 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	composer.lock
2026-01-26 10:28:43 +02:00
fogelito 08f0a43465 Run tests 2026-01-26 09:42:37 +02:00
fogelito 87380a2b01 X-Appwrite-Response-Format 1.8.0 2026-01-25 18:04:00 +02:00
fogelito 0748a08fdc Fix tests 2026-01-25 13:41:28 +02:00
fogelito 2e4efb5d2f Fix test with sequence 2026-01-25 13:30:12 +02:00
fogelito 730a967104 Fix sequence when no key 2026-01-25 11:58:58 +02:00
fogelito 95af73a479 Pull 1.8.x 2026-01-25 09:13:05 +02:00
fogelito d7619f7057 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	composer.lock
2026-01-25 09:12:36 +02:00
fogelito 1ec142fe07 getQueriesValidator 2026-01-22 17:33:55 +02:00
fogelito 1c73d54153 revert 2026-01-22 17:32:39 +02:00
fogelito 1daef72ca9 allow nulls 2026-01-22 17:23:46 +02:00
fogelito c5b415af59 add method 2026-01-22 17:05:19 +02:00
fogelito b1915fa20c static 2026-01-22 16:15:52 +02:00
fogelito 82032ac60a validator 2026-01-22 15:56:11 +02:00
fogelito 27121a7f1e revert getQueriesValidator 2026-01-22 15:33:22 +02:00
fogelito bef969738e revert getQueriesValidator 2026-01-22 15:32:02 +02:00
fogelito bea6ccbe92 Pull changes 2026-01-21 15:59:36 +02:00
fogelito c126dba3b5 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2 2026-01-21 15:58:07 +02:00
fogelito c72e69371b Filters 2026-01-21 15:50:19 +02:00
fogelito a3c6e45e92 convertSelectQueries 2026-01-21 12:37:44 +02:00
fogelito db068f31ba linter 2026-01-20 13:49:13 +02:00
fogelito 50673c3223 Filters 2026-01-20 13:42:22 +02:00
fogelito 7d5d97e53b Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2 2026-01-19 14:41:15 +02:00
fogelito 0b1136c678 lock 2026-01-19 13:25:46 +02:00
fogelito 5d59e17b8c lock 2026-01-19 13:12:20 +02:00
fogelito 7de871c3d9 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	composer.lock
2026-01-19 13:11:58 +02:00
fogelito 2c1a92951e getLimitQuery 2026-01-19 12:40:36 +02:00
fogelito 5991b1f966 Update getCursorQueries 2026-01-18 16:53:02 +02:00
fogelito 4e24b117f5 fix schema resource 2026-01-18 16:30:40 +02:00
fogelito edaa3764c2 Update lock 2026-01-18 15:48:22 +02:00
fogelito 7db91c2ab0 update migrations 2026-01-18 15:32:47 +02:00
fogelito acd8ff839e lock 2026-01-18 10:23:23 +02:00
fogelito 7f5857b232 "utopia-php/pools": "0.8.*", 2026-01-18 10:02:00 +02:00
fogelito 139474d3fb composer.json 2026-01-18 09:24:01 +02:00
fogelito 30469128d3 deletes worker 2026-01-18 09:13:19 +02:00
fogelito 64f4e081b5 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins3
# Conflicts:
#	src/Appwrite/Platform/Workers/Deletes.php
2026-01-18 09:06:11 +02:00
fogelito c80ff1b541 Revert skipFilters 2026-01-15 17:12:28 +02:00
fogelito edcee5167a lock file 2026-01-15 16:54:22 +02:00
fogelito 1aea7bd6f2 lock file 2026-01-15 16:53:39 +02:00
fogelito a9233717b6 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins3
# Conflicts:
#	composer.lock
2026-01-15 16:39:00 +02:00
fogelito ccb34dc401 Update composer.lock 2026-01-15 16:38:35 +02:00
fogelito 761a4bb0c7 more select queries 2026-01-13 16:50:31 +02:00
fogelito 11f0e8f5df fix selects 2026-01-13 16:43:21 +02:00
fogelito df26136dd8 fix subqueries 2026-01-13 13:01:37 +02:00
fogelito aab780476e fix projects filters 2026-01-13 11:20:06 +02:00
fogelito 1ae2d09e4b fix tests 2026-01-13 10:35:55 +02:00
fogelito a6a2fa77df Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2 2026-01-13 10:14:03 +02:00
fogelito a79f46ed78 pull-auth-auth-refactor 2026-01-13 10:08:05 +02:00
fogelito 638f7431b1 Merge branch 'feat-auth-instance' of https://github.com/appwrite/appwrite into joins2
# Conflicts:
#	composer.json
#	composer.lock
#	src/Appwrite/Platform/Action.php
#	src/Appwrite/Platform/Workers/Deletes.php
2026-01-13 09:56:37 +02:00
fogelito fa3c9a5b76 Remove comment 2026-01-12 16:24:42 +02:00
fogelito c388fea5d0 fix Filters 2026-01-12 16:19:48 +02:00
fogelito a407d2ea84 formatting 2026-01-12 15:42:01 +02:00
fogelito da56ef39f8 remove static 2026-01-12 15:39:36 +02:00
fogelito 275b9a1186 coderabbit comments 2026-01-12 15:35:19 +02:00
fogelito 2f514ae55e Fix message 2026-01-12 15:10:52 +02:00
fogelito 38517b8004 Fix message 2026-01-12 15:02:30 +02:00
fogelito 8758e2e5a0 Run 2026-01-12 12:43:53 +02:00
fogelito dacc6a97d0 disbaled internals 2026-01-12 08:28:50 +02:00
fogelito 13fc2222f8 Update message 2026-01-11 16:37:05 +02:00
fogelito 900d8f248e allowedAttributes 2026-01-11 16:22:19 +02:00
fogelito de572c3aa9 composer 2026-01-11 15:06:55 +02:00
fogelito d4fd5e79d9 lock 2026-01-11 14:54:41 +02:00
fogelito 87247826e0 lock 2026-01-11 14:54:25 +02:00
fogelito 05f4d05cf3 lock 2026-01-11 14:42:46 +02:00
fogelito d12d6acd62 revert 2026-01-11 14:42:16 +02:00
fogelito 133eac66e7 upgrade fetch 2026-01-11 14:35:32 +02:00
fogelito 53a6fef69e lock file 2026-01-11 14:15:34 +02:00
fogelito 0c4f540325 Merge branch 'main' of https://github.com/appwrite/appwrite into joins2 2026-01-11 14:02:57 +02:00
fogelito 19e22e1da7 Types 2025-12-25 18:25:14 +02:00
fogelito 23c1e4fb79 remove var dump 2025-12-25 13:10:30 +02:00
fogelito 904b2da8ce Remove dbg 2025-12-25 12:02:54 +02:00
fogelito ee129e28f1 Remove dbg 2025-12-25 12:02:02 +02:00
fogelito c50ba30f1b fomratting 2025-12-25 12:00:33 +02:00
fogelito 265ccdb03a TablesDB tests 2025-12-25 11:03:19 +02:00
fogelito 3b93e925d4 database test 2025-12-25 10:56:58 +02:00
fogelito 10b38c7c6d enums 2025-12-23 16:42:37 +02:00
fogelito adf6b02462 create document fix reference 2025-12-23 12:18:15 +02:00
fogelito f47c484d8d csv queries 2025-12-23 09:35:28 +02:00
fogelito 6e1d2008f8 Fix filter V17 2025-12-22 15:44:10 +02:00
fogelito 38fb9f2814 select query 2025-12-22 12:47:49 +02:00
fogelito 8d37e843e0 Query select 2025-12-22 12:25:14 +02:00
fogelito 975510c6a0 select queries 2025-12-21 17:42:57 +02:00
fogelito a971976587 format 2025-12-21 17:01:17 +02:00
fogelito 9bee2f5a25 Types validator 2025-12-21 16:26:55 +02:00
fogelito 21e830146b composer.lock 2025-12-21 10:47:32 +02:00
50360 changed files with 1724924 additions and 43800 deletions
+4 -7
View File
@@ -10,7 +10,6 @@ _APP_CONSOLE_SESSION_ALERTS=enabled
_APP_CONSOLE_WHITELIST_IPS=
_APP_CONSOLE_COUNTRIES_DENYLIST=AQ
_APP_CONSOLE_HOSTNAMES=localhost,appwrite.io,*.appwrite.io
_APP_CONSOLE_SCHEMA=appwriteio
_APP_MIGRATION_HOST=appwrite
_APP_SYSTEM_EMAIL_NAME=Appwrite
_APP_SYSTEM_EMAIL_ADDRESS=noreply@appwrite.io
@@ -39,10 +38,9 @@ _APP_REDIS_HOST=redis
_APP_REDIS_PORT=6379
_APP_REDIS_PASS=
_APP_REDIS_USER=
COMPOSE_PROFILES=mongodb
_APP_DB_ADAPTER=mongodb
_APP_DB_HOST=mongodb
_APP_DB_PORT=27017
_APP_DB_ADAPTER=mariadb
_APP_DB_HOST=mariadb
_APP_DB_PORT=3306
_APP_DB_SCHEMA=appwrite
_APP_DB_USER=user
_APP_DB_PASS=password
@@ -135,5 +133,4 @@ _APP_PROJECT_REGIONS=default
_APP_FUNCTIONS_CREATION_ABUSE_LIMIT=5000
_APP_STATS_USAGE_DUAL_WRITING_DBS=database_db_main
_APP_TRUSTED_HEADERS=x-forwarded-for
_APP_POOL_ADAPTER=stack
_APP_WORKER_SCREENSHOTS_ROUTER=http://appwrite
_APP_POOL_ADAPTER=stack
+3 -5
View File
@@ -3,7 +3,6 @@ concurrency:
group: '${{ github.workflow }}-${{ github.ref }}'
cancel-in-progress: true
env:
COMPOSE_FILE: docker-compose.yml
IMAGE: appwrite-dev
CACHE_KEY: 'appwrite-dev-${{ github.event.pull_request.head.sha }}'
'on':
@@ -14,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Docker Buildx
@@ -29,7 +28,6 @@ jobs:
cache-from: type=gha
cache-to: 'type=gha,mode=max'
outputs: 'type=docker,dest=/tmp/${{ env.IMAGE }}.tar'
target: development
build-args: |
DEBUG=false
TESTING=true
@@ -47,7 +45,7 @@ jobs:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Load Cache
uses: actions/cache@v4
with:
@@ -99,7 +97,7 @@ jobs:
echo "| 200 | $(jq -r '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark.json) | $(jq -r '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark-latest.json) | " >> benchmark.txt
echo "| P99 | $(jq -r '.latencyPercentiles.p99' benchmark.json ) | $(jq -r '.latencyPercentiles.p99' benchmark-latest.json ) | " >> benchmark.txt
- name: Save results
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
if: '${{ !cancelled() }}'
with:
name: benchmark.json
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Cleanup
run: |
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
+3 -3
View File
@@ -12,7 +12,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 2
@@ -20,9 +20,9 @@ jobs:
- name: Validate composer.json and composer.lock
run: |
docker run --rm -v $PWD:/app composer:2.8 sh -c \
docker run --rm -v $PWD:/app composer sh -c \
"composer validate"
- name: Run Linter
run: |
docker run --rm -v $PWD:/app composer:2.8 sh -c \
docker run --rm -v $PWD:/app composer sh -c \
"composer install --profile --ignore-platform-reqs && composer lint"
+3 -3
View File
@@ -10,11 +10,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build the Docker image
run: DOCKER_BUILDKIT=1 docker build . --target production -t appwrite_image:latest
run: docker build . -t appwrite_image:latest
- name: Run Trivy vulnerability scanner on image
uses: aquasecurity/trivy-action@0.20.0
with:
@@ -33,7 +33,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner on filesystem
uses: aquasecurity/trivy-action@0.20.0
with:
+4 -5
View File
@@ -11,20 +11,19 @@ jobs:
pull-requests: write
steps:
- name: Check out code
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
submodules: 'recursive'
- name: Build the Docker image
uses: docker/build-push-action@v6
with:
uses: docker/build-push-action@v5
with:
context: .
push: false
load: true
tags: pr_image:${{ github.sha }}
target: production
- name: Run Trivy vulnerability scanner on image
uses: aquasecurity/trivy-action@0.20.0
@@ -45,7 +44,7 @@ jobs:
- name: Process Trivy scan results
id: process-results
uses: actions/github-script@v8
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
+3 -3
View File
@@ -12,7 +12,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 2
submodules: recursive
@@ -24,7 +24,7 @@ jobs:
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
uses: docker/login-action@v2
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -38,7 +38,7 @@ jobs:
type=ref,event=tag
- name: Build & Publish to DockerHub
uses: docker/build-push-action@v6
uses: docker/build-push-action@v4
with:
context: .
platforms: linux/amd64,linux/arm64
+3 -3
View File
@@ -11,7 +11,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
@@ -26,7 +26,7 @@ jobs:
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
uses: docker/login-action@v2
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -42,7 +42,7 @@ jobs:
type=semver,pattern={{major}}
- name: Build and push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v4
with:
context: .
platforms: linux/amd64,linux/arm64
+5 -12
View File
@@ -1,9 +1,9 @@
name: "SDK Preview"
env:
COMPOSE_FILE: docker-compose.yml
on:
pull_request:
paths:
- 'app/config/specs/*-latest-console.json'
workflow_dispatch:
inputs:
platform:
@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Set SDK type
id: set-sdk
@@ -39,13 +39,6 @@ jobs:
run: |
docker compose build
docker compose up -d
- name: Generate Specs
run: |
docker compose exec appwrite specs --version=latest --mode=normal --git=no
- name: Generate SDK
run: |
docker compose exec appwrite sdks --platform=${{ steps.set-sdk.outputs.platform }} --sdk=${{ steps.set-sdk.outputs.sdk_type }} --version=latest --git=no
sudo chown -R $USER:$USER ./app/sdks/${{ steps.set-sdk.outputs.platform }}-${{ steps.set-sdk.outputs.sdk_type }}
@@ -54,7 +47,7 @@ jobs:
node-version: 20
- name: Build and Publish SDK
working-directory: ./app/sdks/${{ steps.set-sdk.outputs.platform }}-${{ steps.set-sdk.outputs.sdk_type }}
working-directory: ./app/sdks/console-web
run: |
npm install
npm run build
-113
View File
@@ -1,113 +0,0 @@
name: "Generate Specs"
env:
COMPOSE_FILE: docker-compose.yml
on:
workflow_dispatch:
inputs:
version:
type: choice
description: "Appwrite version to generate specs for"
required: true
options:
- "1.8.x"
- "1.7.x"
- "1.6.x"
- "1.5.x"
- "latest"
push:
type: boolean
description: "Push specs to appwrite/specs repo and create PR"
default: true
message:
type: string
description: "Commit message for the specs PR"
default: "chore: update API specs and SDK examples"
jobs:
generate:
name: Generate Specs
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
submodules: recursive
- name: Build and start Appwrite
run: |
docker compose build
docker compose up -d
- name: Generate specs
run: |
docker compose exec appwrite specs --version=${{ inputs.version }} --mode=normal --git=no
- name: Generate SDK examples
if: inputs.push
run: |
docker compose exec appwrite sdks --platform=* --sdk=* --version=${{ inputs.version }} --git=no --mode=examples
sudo chown -R $USER:$USER ./docs/examples/
- name: Push to appwrite/specs and create PR
if: inputs.push
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
VERSION="${{ inputs.version }}"
MESSAGE="${{ inputs.message }}"
GIT_BRANCH="feat-${VERSION}-specs"
SPECS_DIR="./app/config/specs"
EXAMPLES_DIR="./docs/examples/${VERSION}"
TARGET="/tmp/specs-repo"
sudo chown -R $USER:$USER "${SPECS_DIR}"
# Clone the specs repo
git clone "https://x-access-token:${GH_TOKEN}@github.com/appwrite/specs.git" "${TARGET}"
cd "${TARGET}"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
# Create or checkout the feature branch
git checkout -b "${GIT_BRANCH}" || git checkout "${GIT_BRANCH}"
# Copy spec files
mkdir -p "specs/${VERSION}"
cp ${GITHUB_WORKSPACE}/${SPECS_DIR}/*${VERSION}*.json "specs/${VERSION}/" 2>/dev/null || true
# Copy latest specs if version is latest
if [ "${VERSION}" = "latest" ]; then
cp ${GITHUB_WORKSPACE}/${SPECS_DIR}/*latest*.json "specs/latest/" 2>/dev/null || true
fi
# Copy SDK examples
if [ -d "${GITHUB_WORKSPACE}/docs/examples/${VERSION}" ]; then
mkdir -p "examples/${VERSION}"
cp -r "${GITHUB_WORKSPACE}/docs/examples/${VERSION}/." "examples/${VERSION}/"
fi
# Commit and push
git add -A
git diff --cached --quiet && echo "No changes to commit" && exit 0
git commit -m "${MESSAGE}"
git push -u origin "${GIT_BRANCH}" --force
# Create or update PR
EXISTING_PR=$(gh pr list --repo appwrite/specs --head "${GIT_BRANCH}" --json number --jq '.[0].number' 2>/dev/null || true)
if [ -n "${EXISTING_PR}" ]; then
echo "PR #${EXISTING_PR} already exists, updated branch"
echo "https://github.com/appwrite/specs/pull/${EXISTING_PR}"
else
gh pr create \
--repo "appwrite/specs" \
--title "feat: API specs update for version ${VERSION}" \
--body "This PR contains API specification updates and SDK examples for version ${VERSION}." \
--base "main" \
--head "${GIT_BRANCH}"
fi
- name: Stop containers
if: always()
run: docker compose down
+2 -2
View File
@@ -8,11 +8,11 @@ jobs:
steps:
- name: Check out the repo
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Run CodeQL
run: |
docker run --rm -v $PWD:/app composer:2.8 sh -c \
docker run --rm -v $PWD:/app composer:2.6 sh -c \
"composer install --profile --ignore-platform-reqs && composer check"
- name: Run Locale check
+83 -147
View File
@@ -5,7 +5,6 @@ concurrency:
cancel-in-progress: true
env:
COMPOSE_FILE: docker-compose.yml
IMAGE: appwrite-dev
CACHE_KEY: appwrite-dev-${{ github.event.pull_request.head.sha }}
@@ -27,7 +26,7 @@ jobs:
database_changed: ${{ steps.check.outputs.database_changed }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Fetch base branch
run: git fetch origin ${{ github.event.pull_request.base.ref }}
@@ -49,7 +48,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
submodules: recursive
@@ -66,7 +65,6 @@ jobs:
cache-from: type=gha
cache-to: type=gha,mode=max
outputs: type=docker,dest=/tmp/${{ env.IMAGE }}.tar
target: development
build-args: |
DEBUG=false
TESTING=true
@@ -88,7 +86,7 @@ jobs:
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Load Cache
uses: actions/cache@v4
@@ -98,14 +96,16 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
docker compose up -d
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
sleep 10
- name: Logs
run: docker compose logs appwrite
- name: Doctor
run: docker compose exec -T appwrite doctor
- name: Environment Variables
run: docker compose exec -T appwrite vars
@@ -113,9 +113,8 @@ jobs:
- name: Run Unit Tests
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
max_attempts: 3
timeout_minutes: 30
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/unit
@@ -133,7 +132,7 @@ jobs:
pull-requests: write
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Load Cache
uses: actions/cache@v4
@@ -143,15 +142,11 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
docker compose up -d
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
sleep 10
- name: Wait for Open Runtimes
timeout-minutes: 3
run: |
@@ -163,9 +158,8 @@ jobs:
- name: Run General Tests
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
max_attempts: 3
timeout_minutes: 30
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/General
@@ -177,8 +171,10 @@ jobs:
- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Logs ==="
docker compose logs
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor
e2e_service_test:
name: E2E Service Test
@@ -192,14 +188,15 @@ jobs:
matrix:
db_adapter: [
MARIADB,
POSTGRESQL,
MONGODB
POSTGRESQL
]
service: [
Account,
Avatars,
Console,
Databases,
Databases/Legacy,
Databases/TablesDB,
Functions,
FunctionsSchedule,
GraphQL,
@@ -220,7 +217,7 @@ jobs:
]
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Load Cache
uses: actions/cache@v4
@@ -229,37 +226,12 @@ jobs:
path: /tmp/${{ env.IMAGE }}.tar
fail-on-cache-miss: true
- name: Set DB Adapter environment
id: set-db-env
run: |
DB_ADAPTER_LOWER=$(echo "${{ matrix.db_adapter }}" | tr 'A-Z' 'a-z')
echo "COMPOSE_PROFILES=${DB_ADAPTER_LOWER}" >> $GITHUB_ENV
if [ "${{ matrix.db_adapter }}" = "MARIADB" ]; then
echo "_APP_DB_ADAPTER=mariadb" >> $GITHUB_ENV
echo "_APP_DB_HOST=mariadb" >> $GITHUB_ENV
echo "_APP_DB_PORT=3306" >> $GITHUB_ENV
elif [ "${{ matrix.db_adapter }}" = "MONGODB" ]; then
echo "_APP_DB_ADAPTER=mongodb" >> $GITHUB_ENV
echo "_APP_DB_HOST=mongodb" >> $GITHUB_ENV
echo "_APP_DB_PORT=27017" >> $GITHUB_ENV
elif [ "${{ matrix.db_adapter }}" = "POSTGRESQL" ]; then
echo "_APP_DB_ADAPTER=postgresql" >> $GITHUB_ENV
echo "_APP_DB_HOST=postgresql" >> $GITHUB_ENV
echo "_APP_DB_PORT=5432" >> $GITHUB_ENV
fi
- name: Load and Start Appwrite
timeout-minutes: 3
env:
_APP_BROWSER_HOST: http://invalid-browser/v1
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
sed -i 's|^_APP_BROWSER_HOST=.*|_APP_BROWSER_HOST=http://invalid-browser/v1|' .env
docker compose up -d
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
sleep 30
- name: Wait for Open Runtimes
timeout-minutes: 3
@@ -272,38 +244,50 @@ jobs:
- name: Run ${{ matrix.service }} tests with Project table mode
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 20
max_attempts: 3
timeout_minutes: 30
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/${{ matrix.service }}
command: |
echo "Using project tables"
SERVICE_PATH="/usr/src/code/tests/e2e/Services/${{ matrix.service }}"
# Services that rely on sequential test method execution (shared static state)
FUNCTIONAL_FLAG="--functional"
case "${{ matrix.service }}" in
Databases|Functions|Realtime) FUNCTIONAL_FLAG="" ;;
esac
export _APP_DATABASE_SHARED_TABLES=
export _APP_DATABASE_SHARED_TABLES_V1=
# Set DB Adapter Specific ENV Vars using if-elif
if [ "${{ matrix.db_adapter }}" = "MARIADB" ]; then
export _APP_DB_ADAPTER=mariadb
export _APP_DB_HOST=mariadb
export _APP_DB_PORT=3306
export _APP_DB_SCHEMA=appwrite
elif [ "${{ matrix.db_adapter }}" = "POSTGRESQL" ]; then
export _APP_DB_ADAPTER=postgresql
export _APP_DB_HOST=postgresql
export _APP_DB_PORT=5432
export _APP_DB_SCHEMA=appwrite
else
echo "Unknown DB adapter: ${{ matrix.db_adapter }}"
exit 1
fi
echo "Running with paratest (parallel) for: ${{ matrix.service }} ${FUNCTIONAL_FLAG:+(functional)}"
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES="" \
-e _APP_DATABASE_SHARED_TABLES_V1="" \
-e _APP_DB_ADAPTER="${{ env._APP_DB_ADAPTER }}" \
-e _APP_DB_HOST="${{ env._APP_DB_HOST }}" \
-e _APP_DB_PORT="${{ env._APP_DB_PORT }}" \
-e _APP_DB_SCHEMA=appwrite \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_DB_ADAPTER \
-e _APP_DB_HOST \
-e _APP_DB_PORT \
-e _APP_DB_SCHEMA \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite vendor/bin/paratest --processes $(nproc) $FUNCTIONAL_FLAG "$SERVICE_PATH" --exclude-group abuseEnabled --exclude-group screenshots --exclude-group ciIgnore --log-junit tests/e2e/Services/${{ matrix.service }}/junit.xml
appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude-group abuseEnabled,screenshots
- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Logs ==="
docker compose logs
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor
e2e_shared_mode_test:
name: E2E Shared Mode Service Test
@@ -321,7 +305,8 @@ jobs:
Account,
Avatars,
Console,
Databases,
Databases/Legacy,
Databases/TablesDB,
Functions,
FunctionsSchedule,
GraphQL,
@@ -347,7 +332,7 @@ jobs:
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Load Cache
uses: actions/cache@v4
@@ -357,14 +342,10 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
docker compose up -d
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
sleep 30
- name: Wait for Open Runtimes
timeout-minutes: 3
@@ -377,9 +358,8 @@ jobs:
- name: Run ${{ matrix.service }} tests with ${{ matrix.tables-mode }} table mode
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 20
max_attempts: 3
timeout_minutes: 30
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/${{ matrix.service }}
@@ -393,20 +373,12 @@ jobs:
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=
fi
SERVICE_PATH="/usr/src/code/tests/e2e/Services/${{ matrix.service }}"
# Services that rely on sequential test method execution (shared static state)
FUNCTIONAL_FLAG="--functional"
case "${{ matrix.service }}" in
Databases|Functions|Realtime) FUNCTIONAL_FLAG="" ;;
esac
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite vendor/bin/paratest --processes $(nproc) $FUNCTIONAL_FLAG "$SERVICE_PATH" --exclude-group abuseEnabled --exclude-group screenshots --exclude-group ciIgnore --log-junit tests/e2e/Services/${{ matrix.service }}/junit.xml
appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude-group abuseEnabled,screenshots
- name: Failure Logs
if: failure()
@@ -425,7 +397,7 @@ jobs:
pull-requests: write
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Load Cache
uses: actions/cache@v4
@@ -435,22 +407,17 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
docker compose up -d
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
sleep 30
- name: Run Projects tests in dedicated table mode
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
max_attempts: 3
timeout_minutes: 30
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/Projects
@@ -490,7 +457,7 @@ jobs:
]
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Load Cache
uses: actions/cache@v4
@@ -500,22 +467,17 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
docker compose up -d
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
sleep 30
- name: Run Projects tests in ${{ matrix.tables-mode }} table mode
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
max_attempts: 3
timeout_minutes: 30
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/Projects
@@ -553,7 +515,7 @@ jobs:
pull-requests: write
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Load Cache
uses: actions/cache@v4
@@ -563,30 +525,17 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
docker compose up -d
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
- name: Wait for Open Runtimes
timeout-minutes: 3
run: |
while ! docker compose logs openruntimes-executor | grep -q "Executor is ready."; do
echo "Waiting for Executor to come online"
sleep 1
done
sleep 30
- name: Run Site tests with browser connected in dedicated table mode
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
max_attempts: 3
timeout_minutes: 30
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/Sites
@@ -627,7 +576,7 @@ jobs:
]
steps:
- name: checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Load Cache
uses: actions/cache@v4
@@ -637,30 +586,17 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
docker compose up -d
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
- name: Wait for Open Runtimes
timeout-minutes: 3
run: |
while ! docker compose logs openruntimes-executor | grep -q "Executor is ready."; do
echo "Waiting for Executor to come online"
sleep 1
done
sleep 30
- name: Run Site tests with browser connected in ${{ matrix.tables-mode }} table mode
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
max_attempts: 3
timeout_minutes: 30
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/Sites
+1 -4
View File
@@ -17,7 +17,4 @@ dev/yasd_init.php
.phpunit.result.cache
Makefile
appwrite.config.json
/.zed/
/app/config/specs/
/docs/examples/
.phpunit.cache
/.zed/
+2 -5
View File
@@ -1,4 +1,4 @@
FROM composer:2 AS composer
FROM composer:2.0 AS composer
ARG TESTING=false
ENV TESTING=$TESTING
@@ -12,7 +12,7 @@ RUN composer install --ignore-platform-reqs --optimize-autoloader \
--no-plugins --no-scripts --prefer-dist \
`if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi`
FROM appwrite/base:1.0.0 AS base
FROM appwrite/base:0.11.5 AS base
LABEL maintainer="team@appwrite.io"
@@ -37,9 +37,6 @@ COPY ./app /usr/src/code/app
COPY ./public /usr/src/code/public
COPY ./bin /usr/local/bin
COPY ./src /usr/src/code/src
COPY ./dev /usr/src/code/dev
COPY ./mongo-init.js /usr/src/code/mongo-init.js
COPY ./mongo-entrypoint.sh /usr/src/code/mongo-entrypoint.sh
# Set Volumes
RUN mkdir -p /storage/uploads && \
+5 -1
View File
@@ -30,6 +30,9 @@ use Utopia\Pools\Group;
use Utopia\Queue\Broker\Pool as BrokerPool;
use Utopia\Queue\Publisher;
use Utopia\Registry\Registry;
use Utopia\Span\Exporter;
use Utopia\Span\Span;
use Utopia\Span\Storage;
use Utopia\System\System;
use Utopia\Telemetry\Adapter\None as NoTelemetry;
@@ -337,5 +340,6 @@ $cli
$cli->shutdown()->action(fn () => Timer::clearAll());
Runtime::enableCoroutine(SWOOLE_HOOK_ALL);
require_once __DIR__ . '/init/span.php';
Span::setStorage(new Storage\Coroutine());
Span::addExporter(new Exporter\Stdout());
run($cli->run(...));
+21 -1
View File
@@ -1617,6 +1617,13 @@ return [
],
],
'indexes' => [
[
'$id' => ID::custom('_fulltext_name'),
'type' => Database::INDEX_FULLTEXT,
'attributes' => ['name'],
'lengths' => [],
'orders' => [],
],
[
'$id' => ID::custom('_key_search'),
'type' => Database::INDEX_FULLTEXT,
@@ -1846,6 +1853,13 @@ return [
'lengths' => [],
'orders' => [Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_name'),
'type' => Database::INDEX_FULLTEXT,
'attributes' => ['name'],
'lengths' => [],
'orders' => [Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_type'),
'type' => Database::INDEX_KEY,
@@ -2113,8 +2127,14 @@ return [
'filters' => ['topicSearch'],
],
],
'indexes' => [
[
'$id' => ID::custom('_key_name'),
'type' => Database::INDEX_FULLTEXT,
'attributes' => ['name'],
'lengths' => [],
'orders' => [],
],
[
'$id' => ID::custom('_key_search'),
'type' => Database::INDEX_FULLTEXT,
-11
View File
@@ -342,17 +342,6 @@ $platformCollections = [
'array' => true,
'filters' => [],
],
[
'$id' => 'status',
'type' => Database::VAR_STRING,
'format' => '',
'size' => 100,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,
'filters' => [],
],
],
'indexes' => [
[
-53
View File
@@ -1,53 +0,0 @@
<?php
/**
* CORS Configuration
*
* Centralised list of allowed methods, headers, and exposed headers for CORS responses.
*/
return [
'allowedMethods' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'],
'allowedHeaders' => [
'Accept',
'Origin',
'Cookie',
'Set-Cookie',
// Content
'Content-Type',
'Content-Range',
// Appwrite
'X-Appwrite-Project',
'X-Appwrite-Key',
'X-Appwrite-Dev-Key',
'X-Appwrite-Locale',
'X-Appwrite-Mode',
'X-Appwrite-JWT',
'X-Appwrite-Response-Format',
'X-Appwrite-Timeout',
'X-Appwrite-ID',
'X-Appwrite-Timestamp',
'X-Appwrite-Session',
'X-Appwrite-Platform',
// SDK generator
'X-SDK-Version',
'X-SDK-Name',
'X-SDK-Language',
'X-SDK-Platform',
'X-SDK-GraphQL',
'X-SDK-Profile',
// Caching
'Range',
'Cache-Control',
'Expires',
'Pragma',
// Server to server
'X-Fallback-Cookies',
'X-Requested-With',
'X-Forwarded-For',
'X-Forwarded-User-Agent',
],
'exposedHeaders' => [
'X-Appwrite-Session',
'X-Fallback-Cookies',
],
];
-5
View File
@@ -139,11 +139,6 @@ return [
'description' => 'There was an error processing your request. Please check the inputs and try again.',
'code' => 400,
],
Exception::GENERAL_FEATURE_UNSUPPORTED => [
'name' => Exception::GENERAL_FEATURE_UNSUPPORTED,
'description' => 'This feature is not supported with your current configuration.',
'code' => 400,
],
/** User Errors */
Exception::USER_COUNT_EXCEEDED => [
-8
View File
@@ -405,14 +405,6 @@ return [
'$description' => 'This event triggers when a provider is deleted.'
],
],
'schedules' => [
'$model' => Response::MODEL_SCHEDULE,
'$resource' => true,
'$description' => 'This event triggers on any schedule event.',
'create' => [
'$description' => 'This event triggers when a schedule is created.',
],
],
'rules' => [
'$model' => Response::MODEL_PROXY_RULE,
'$resource' => true,
-1
View File
@@ -24,7 +24,6 @@ return [
System::getEnv('_APP_CONSOLE_DOMAIN', 'localhost'),
System::getEnv('_APP_MIGRATION_HOST'),
])),
'schemas' => \array_filter(\explode(',', System::getEnv('_APP_CONSOLE_SCHEMA', ''))),
'platformName' => APP_EMAIL_PLATFORM_NAME,
'logoUrl' => APP_EMAIL_LOGO_URL,
'accentColor' => APP_EMAIL_ACCENT_COLOR,
-2
View File
@@ -91,8 +91,6 @@ $admins = [
'subscribers.read',
'tokens.read',
'tokens.write',
'schedules.read',
'schedules.write',
];
return [
-6
View File
@@ -145,12 +145,6 @@ return [ // List of publicly visible scopes
'rules.write' => [
'description' => 'Access to create, update, and delete your project\'s proxy rules',
],
'schedules.read' => [
'description' => 'Access to read your project\'s schedules',
],
'schedules.write' => [
'description' => 'Access to create, update, and delete your project\'s schedules',
],
'migrations.read' => [
'description' => 'Access to read your project\'s migrations',
],
+17 -55
View File
@@ -11,7 +11,7 @@ return [
[
'key' => 'web',
'name' => 'Web',
'version' => '22.4.0',
'version' => '22.0.0',
'url' => 'https://github.com/appwrite/sdk-for-web',
'package' => 'https://www.npmjs.com/package/appwrite',
'enabled' => true,
@@ -60,7 +60,7 @@ return [
[
'key' => 'flutter',
'name' => 'Flutter',
'version' => '21.4.0',
'version' => '21.0.0',
'url' => 'https://github.com/appwrite/sdk-for-flutter',
'package' => 'https://pub.dev/packages/appwrite',
'enabled' => true,
@@ -79,7 +79,7 @@ return [
[
'key' => 'apple',
'name' => 'Apple',
'version' => '14.3.0',
'version' => '14.0.0',
'url' => 'https://github.com/appwrite/sdk-for-apple',
'package' => 'https://github.com/appwrite/sdk-for-apple',
'enabled' => true,
@@ -117,7 +117,7 @@ return [
'key' => 'android',
'name' => 'Android',
'namespace' => 'io.appwrite',
'version' => '12.2.0',
'version' => '12.0.0',
'url' => 'https://github.com/appwrite/sdk-for-android',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
'enabled' => true,
@@ -140,7 +140,7 @@ return [
[
'key' => 'react-native',
'name' => 'React Native',
'version' => '0.24.0',
'version' => '0.20.0',
'url' => 'https://github.com/appwrite/sdk-for-react-native',
'package' => 'https://npmjs.com/package/react-native-appwrite',
'enabled' => true,
@@ -208,7 +208,7 @@ return [
[
'key' => 'web',
'name' => 'Console',
'version' => '22.4.0',
'version' => '0.3.0',
'url' => '',
'package' => '',
'enabled' => true,
@@ -227,7 +227,7 @@ return [
[
'key' => 'cli',
'name' => 'Command Line',
'version' => '13.5.0',
'version' => '13.3.2',
'url' => 'https://github.com/appwrite/sdk-for-cli',
'package' => 'https://www.npmjs.com/package/appwrite-cli',
'enabled' => true,
@@ -253,7 +253,7 @@ return [
[
'key' => 'markdown',
'name' => 'Markdown',
'version' => '0.3.0',
'version' => '0.2.0',
'url' => 'https://github.com/appwrite/sdk-for-md.git',
'package' => 'https://www.npmjs.com/package/@appwrite.io/docs',
'enabled' => true,
@@ -270,44 +270,6 @@ return [
'repoBranch' => 'main',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/md/CHANGELOG.md'),
],
[
'key' => 'agent-skills',
'name' => 'AgentSkills',
'version' => '0.1.0',
'url' => 'https://github.com/appwrite/agent-skills.git',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CONSOLE,
'prism' => 'agent-skills',
'source' => \realpath(__DIR__ . '/../sdks/console-agent-skills'),
'gitUrl' => 'git@github.com:appwrite/agent-skills.git',
'gitRepoName' => 'agent-skills',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'repoBranch' => 'main',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/agent-skills/CHANGELOG.md'),
],
[
'key' => 'cursor-plugin',
'name' => 'CursorPlugin',
'version' => '0.1.0',
'url' => 'https://github.com/appwrite/cursor-plugin.git',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CONSOLE,
'prism' => 'cursor-plugin',
'source' => \realpath(__DIR__ . '/../sdks/console-cursor-plugin'),
'gitUrl' => 'git@github.com:appwrite/cursor-plugin.git',
'gitRepoName' => 'cursor-plugin',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'repoBranch' => 'main',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/cursor-plugin/CHANGELOG.md'),
],
],
],
@@ -321,7 +283,7 @@ return [
[
'key' => 'nodejs',
'name' => 'Node.js',
'version' => '22.0.1',
'version' => '22.0.0',
'url' => 'https://github.com/appwrite/sdk-for-node',
'package' => 'https://www.npmjs.com/package/node-appwrite',
'enabled' => true,
@@ -340,7 +302,7 @@ return [
[
'key' => 'php',
'name' => 'PHP',
'version' => '20.0.1',
'version' => '20.0.0',
'url' => 'https://github.com/appwrite/sdk-for-php',
'package' => 'https://packagist.org/packages/appwrite/appwrite',
'enabled' => true,
@@ -359,7 +321,7 @@ return [
[
'key' => 'python',
'name' => 'Python',
'version' => '15.1.0',
'version' => '15.0.0',
'url' => 'https://github.com/appwrite/sdk-for-python',
'package' => 'https://pypi.org/project/appwrite/',
'enabled' => true,
@@ -378,7 +340,7 @@ return [
[
'key' => 'ruby',
'name' => 'Ruby',
'version' => '21.0.1',
'version' => '21.0.0',
'url' => 'https://github.com/appwrite/sdk-for-ruby',
'package' => 'https://rubygems.org/gems/appwrite',
'enabled' => true,
@@ -397,7 +359,7 @@ return [
[
'key' => 'go',
'name' => 'Go',
'version' => 'v0.16.1',
'version' => 'v0.16.0',
'url' => 'https://github.com/appwrite/sdk-for-go',
'package' => 'https://github.com/appwrite/sdk-for-go',
'enabled' => true,
@@ -416,7 +378,7 @@ return [
[
'key' => 'dotnet',
'name' => '.NET',
'version' => '0.26.0',
'version' => '0.25.0',
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
'package' => 'https://www.nuget.org/packages/Appwrite',
'enabled' => true,
@@ -435,7 +397,7 @@ return [
[
'key' => 'dart',
'name' => 'Dart',
'version' => '21.0.1',
'version' => '21.0.0',
'url' => 'https://github.com/appwrite/sdk-for-dart',
'package' => 'https://pub.dev/packages/dart_appwrite',
'enabled' => true,
@@ -455,7 +417,7 @@ return [
'key' => 'kotlin',
'name' => 'Kotlin',
'namespace' => 'io.appwrite',
'version' => '14.0.1',
'version' => '14.0.0',
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
'enabled' => true,
@@ -478,7 +440,7 @@ return [
[
'key' => 'swift',
'name' => 'Swift',
'version' => '15.1.0',
'version' => '15.0.0',
'url' => 'https://github.com/appwrite/sdk-for-swift',
'package' => 'https://github.com/appwrite/sdk-for-swift',
'enabled' => true,
+1 -1
View File
@@ -160,7 +160,7 @@ return [
'name' => 'Teams',
'subtitle' => 'The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources',
'description' => '/docs/services/teams.md',
'controller' => '', // Uses modules
'controller' => 'api/teams.php',
'sdk' => true,
'docs' => true,
'docsUrl' => 'https://appwrite.io/docs/client/teams',
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More