Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# Change Log

## 28.4.0

* Added: `domains` service to manage domains, DNS records, email presets, prices, transfer status and zones
* Added: `waf` service with bypass, challenge, deny, rate-limit and redirect rules
* Added: `account.createEmailVerificationOTP`, `updateEmailVerificationOTP`, `createRecoveryOTP` and `updateRecoveryOTP`
* Added: `account.createIdTokenSession` and `Identity.providerIdToken`
* Added: `oauth2.introspect`
* Added: project environments with `project.createEnvironment`, `getEnvironment`, `listEnvironments`, `updateEnvironment` and `deleteEnvironment`
* Added: `organization.createEphemeralProjectKey`, `listProjectKeys`, `getProjectKey`, `updateProjectKey` and `deleteProjectKey`
* Added: Kakao, TikTok and Webflow OAuth2 providers with `project.updateOAuth2Kakao`, `updateOAuth2TikTok` and `updateOAuth2Webflow`
* Added: optional `prompt` on the Auth0, Discord, GitHub, Microsoft, Okta, Salesforce and Zoho OAuth2 settings, and native client IDs on Apple and Google
* Added: `project.updatePasswordPwnedPolicy`, `project.updatePasswordRotationPolicy` and `User.passwordPwned`
* Added: `messaging.createAppwriteProvider` and `messaging.updateAppwriteProvider`
* Added: optional `replyToEmail` and `replyToName` on email messages, `channelId` on push messages, and `qos` and `expiry` on topics
* Added: `avatars.updatePhoto` and `avatars.deletePhoto`
* Added: optional `duration` on `account.createEmailPasswordSession`, `current` on `account.deleteSessions`, `membershipId` on `teams.createMembership` and `fingerprints` on Android platforms
* Added: optional `total` on the locale, transaction, runtime, specification and framework lists
* Added: `dart-3.13` and `flutter-3.47` runtimes, the `jaspr` framework, the `trigram` index type, `auto` image gravity, the `dedicatedDatabase` proxy rule resource type, OTP email templates and new key scopes
* Added: optional fields on `BillingPlan`, `DedicatedDatabase`, `DedicatedDatabaseSpecification`, `Project` and `Topic`, and `free` and `start` in `BillingPlanGroup`
* Fixed: OAuth2 provider models with an array `prompt` no longer raise `TypeError`

## 28.3.2

* Fixed: `Project` responses no longer raise `ArgumentError` on the `oauth2` service
Expand Down
2 changes: 1 addition & 1 deletion appwrite.gemspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Gem::Specification.new do |spec|
spec.name = 'appwrite'
spec.version = '28.3.2'
spec.version = '28.4.0'
spec.license = 'BSD-3-Clause'
spec.summary = 'Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API'
spec.author = 'Appwrite Team'
Expand Down
3 changes: 2 additions & 1 deletion docs/examples/account/create-email-password-session.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ account = Account.new(client)

result = account.create_email_password_session(
email: 'email@example.com',
password: 'password'
password: 'password',
duration: 60 # optional
)
```
16 changes: 16 additions & 0 deletions docs/examples/account/create-email-verification-otp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_session('') # The user session to authenticate with

account = Account.new(client)

result = account.create_email_verification_otp(
phrase: false # optional
)
```
22 changes: 22 additions & 0 deletions docs/examples/account/create-id-token-session.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
```ruby
require 'appwrite'

include Appwrite
include Appwrite::Enums

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_session('') # The user session to authenticate with

account = Account.new(client)

result = account.create_id_token_session(
provider: IdTokenProvider::APPLE,
id_token: '<ID_TOKEN>',
nonce: '<NONCE>', # optional
access_token: '<ACCESS_TOKEN>', # optional
access_token_expiry: 0, # optional
name: '<NAME>' # optional
)
```
17 changes: 17 additions & 0 deletions docs/examples/account/create-recovery-otp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_session('') # The user session to authenticate with

account = Account.new(client)

result = account.create_recovery_otp(
email: 'email@example.com',
phrase: false # optional
)
```
4 changes: 3 additions & 1 deletion docs/examples/account/delete-sessions.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,7 @@ client = Client.new

account = Account.new(client)

result = account.delete_sessions()
result = account.delete_sessions(
current: false # optional
)
```
4 changes: 3 additions & 1 deletion docs/examples/account/list-sessions.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,7 @@ client = Client.new

account = Account.new(client)

result = account.list_sessions()
result = account.list_sessions(
total: false # optional
)
```
17 changes: 17 additions & 0 deletions docs/examples/account/update-email-verification-otp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_session('') # The user session to authenticate with

account = Account.new(client)

result = account.update_email_verification_otp(
user_id: '<USER_ID>',
secret: '<SECRET>'
)
```
18 changes: 18 additions & 0 deletions docs/examples/account/update-recovery-otp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_session('') # The user session to authenticate with

account = Account.new(client)

result = account.update_recovery_otp(
user_id: '<USER_ID>',
secret: '<SECRET>',
password: 'password'
)
```
14 changes: 14 additions & 0 deletions docs/examples/avatars/delete-photo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_session('') # The user session to authenticate with

avatars = Avatars.new(client)

result = avatars.delete_photo()
```
16 changes: 16 additions & 0 deletions docs/examples/avatars/update-photo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_session('') # The user session to authenticate with

avatars = Avatars.new(client)

result = avatars.update_photo(
file: InputFile.from_path('dir/file.png')
)
```
3 changes: 2 additions & 1 deletion docs/examples/databases/list-transactions.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ client = Client.new
databases = Databases.new(client)

result = databases.list_transactions(
queries: [] # optional
queries: [], # optional
total: false # optional
)
```
3 changes: 2 additions & 1 deletion docs/examples/documentsdb/list-transactions.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ client = Client.new
documents_db = DocumentsDB.new(client)

result = documents_db.list_transactions(
queries: [] # optional
queries: [], # optional
total: false # optional
)
```
16 changes: 16 additions & 0 deletions docs/examples/domains/create-preset-google-workspace.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_key('<YOUR_API_KEY>') # Your secret API key

domains = Domains.new(client)

result = domains.create_preset_google_workspace(
domain_id: '<DOMAIN_ID>'
)
```
16 changes: 16 additions & 0 deletions docs/examples/domains/create-preset-i-cloud.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_key('<YOUR_API_KEY>') # Your secret API key

domains = Domains.new(client)

result = domains.create_preset_i_cloud(
domain_id: '<DOMAIN_ID>'
)
```
16 changes: 16 additions & 0 deletions docs/examples/domains/create-preset-mailgun.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_key('<YOUR_API_KEY>') # Your secret API key

domains = Domains.new(client)

result = domains.create_preset_mailgun(
domain_id: '<DOMAIN_ID>'
)
```
16 changes: 16 additions & 0 deletions docs/examples/domains/create-preset-outlook.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_key('<YOUR_API_KEY>') # Your secret API key

domains = Domains.new(client)

result = domains.create_preset_outlook(
domain_id: '<DOMAIN_ID>'
)
```
16 changes: 16 additions & 0 deletions docs/examples/domains/create-preset-proton-mail.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_key('<YOUR_API_KEY>') # Your secret API key

domains = Domains.new(client)

result = domains.create_preset_proton_mail(
domain_id: '<DOMAIN_ID>'
)
```
16 changes: 16 additions & 0 deletions docs/examples/domains/create-preset-zoho.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_key('<YOUR_API_KEY>') # Your secret API key

domains = Domains.new(client)

result = domains.create_preset_zoho(
domain_id: '<DOMAIN_ID>'
)
```
20 changes: 20 additions & 0 deletions docs/examples/domains/create-record-a.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_key('<YOUR_API_KEY>') # Your secret API key

domains = Domains.new(client)

result = domains.create_record_a(
domain_id: '<DOMAIN_ID>',
name: '',
value: '',
ttl: 1,
comment: '<COMMENT>' # optional
)
```
20 changes: 20 additions & 0 deletions docs/examples/domains/create-record-aaaa.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_key('<YOUR_API_KEY>') # Your secret API key

domains = Domains.new(client)

result = domains.create_record_aaaa(
domain_id: '<DOMAIN_ID>',
name: '',
value: '',
ttl: 1,
comment: '<COMMENT>' # optional
)
```
20 changes: 20 additions & 0 deletions docs/examples/domains/create-record-alias.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_key('<YOUR_API_KEY>') # Your secret API key

domains = Domains.new(client)

result = domains.create_record_alias(
domain_id: '<DOMAIN_ID>',
name: '',
value: '<VALUE>',
ttl: 1,
comment: '<COMMENT>' # optional
)
```
20 changes: 20 additions & 0 deletions docs/examples/domains/create-record-caa.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
```ruby
require 'appwrite'

include Appwrite

client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_key('<YOUR_API_KEY>') # Your secret API key

domains = Domains.new(client)

result = domains.create_record_caa(
domain_id: '<DOMAIN_ID>',
name: '',
value: '',
ttl: 1,
comment: '<COMMENT>' # optional
)
```
Loading