Appwrite v0.12.0 Release Notes

  • ๐Ÿ”‹ Features

    • ๐Ÿ’ฅ Completely rewritten Database service: Breaking Change
      • Collection rules are now attributes
      • Filters for have been replaced with a new, more powerful syntax
      • Custom indexes for more performant queries
      • Enum Attributes
      • Maximum sum returned does not exceed 5000 documents anymore Breaking Change
      • DEPRECATED Nested documents has been removed
      • DEPRECATED Wildcard rule has been removed
    • You can now set custom IDโ€™s when creating following resources:
      • User
      • Team
      • Function
      • Project
      • File
      • Collection
      • Document
    • ๐Ÿ‘ All resources with custom ID support required you to set an ID now
      • Passing unique() will generate a unique ID
    • Auto-generated ID's are now 20 characters long
    • Wildcard permissions * are now role:all Breaking Change
    • Collections can be enabled and disabled
    • Permissions are now found as top-level keys $read and $write instead of nested under $permissions
    • Accessing collections with insufficient permissions now return a 401 isntead of 404 status code
    • Offset cannot be higher than 5000 now and cursor pagination is required
    • โž• Added Cursor pagination to all endpoints that provide pagination by offset
    • โž• Added new Usage worker to aggregate usage statistics
    • โž• Added new Database worker to handle heavy database tasks in the background
    • โž• Added detailed Usage statistics to following services in the Console:
      • Users
      • Storage
      • Database
    • You can now disable/enable following services in the Console:
      • Account
      • Avatars
      • Database
      • Locale
      • Health
      • Storage
      • Teams
      • Users
      • Functions
    • ๐Ÿ›  Fixed several memory leaks in the Console
    • โž• Added pagination to account activities in the Console
    • โž• Added following events from User service to Webhooks and Functions:
      • users.update.email
      • users.update.name
      • users.update.password
    • โž• Added new environment variables to enable error logging:
      • The _APP_LOGGING_PROVIDER variable allows you to enable the logger set the value to one of sentry, raygun, appsignal.
      • The _APP_LOGGING_CONFIG variable configures authentication to 3rd party error logging providers. If using Sentry, this should be 'SENTRY_API_KEY;SENTRY_APP_ID'. If using Raygun, this should be Raygun API key. If using AppSignal, this should be AppSignal API key.
    • Added new environment variable _APP_USAGE_AGGREGATION_INTERVAL to configure the usage worker interval
    • โž• Added negative rotation values to file preview endpoint
    • ๐Ÿ’ฅ Multiple responses from the Health service were changed to new (better) schema Breaking Change
    • Method health.getAntiVirus() has been renamed to health.getAntivirus()
    • โž• Added following langauges to the Locale service:
      • Latin
      • Sindhi
      • Telugu
    • ๐Ÿ—„ DEPRECATED Tasks service Breaking Change

    ๐Ÿ› Bugs

    • ๐Ÿ›  Fixed /v1/avatars/initials when no space in the name, will try to split by _
    • ๐Ÿ›  Fixed all audit logs now saving all relevant informations
    • ๐Ÿ›  Fixed Health endpoints for db and cache

    ๐Ÿ”’ Security

    • ๐Ÿšš Increased minimum password length to 8 and removed maximum length
    • Limited User Preferences to 65kb total size
    • โฌ†๏ธ Upgraded Redis to 6.2
    • โฌ†๏ธ Upgraded InfluxDB to 1.4.0
    • โฌ†๏ธ Upgraded Telegraf to 1.3.0