terradart_appwrite

pub: terradart_appwrite Dart SDK License: Apache-2.0

Curated factory wrappers for Appwrite resources (the official appwrite/appwrite Terraform provider) for Dart-first Terraform stacks.

The catalog at the current provider pin is filled (every appwrite_* resource and data source in 2.0.0-beta.1). A later pin that adds names lands on request — open a feature request.

Security & Credentials

Credentials never appear in synth output by design. AppwriteProvider has no API-key parameters; authenticate at apply time via APPWRITE_API_KEY or APPWRITE_ORGANIZATION_API_KEY environment variables.

Installation

dependencies:
  terradart_core: ^0.34.0
  terradart_appwrite: ^0.34.0

Usage example

// lib/appwrite_infra_stack.dart
import 'package:terradart_appwrite/provider.dart';
import 'package:terradart_appwrite/storage.dart';

final class AppwriteInfraStack extends Stack {
  AppwriteInfraStack()
      : super(
          providers: [
            AppwriteProvider(
              endpoint: 'https://cloud.appwrite.io/v1',
              projectId: 'my-project',
            ),
          ],
        ) {
    add(
      AppwriteStorageBucket(
        'uploads',
        name: .literal('uploads'),
        maximumFileSize: .literal(10485760),
      ),
    );
  }
}
// bin/infra.dart
import 'package:my_app/appwrite_infra_stack.dart';

Future<void> main() async {
  final stack = AppwriteInfraStack();
  await stack.writeTo('tf-out');
}
dart pub get
dart pub global activate terradart_cli
APPWRITE_API_KEY=... terradart apply

Curated surface

Curated surface is the full appwrite/appwrite 2.0.0-beta.1 catalog: 38 resource factories and 24 data sources across project, proxy, TablesDB, dedicated PostgreSQL / MySQL / Mongo, storage, auth, functions, sites, messaging, webhooks, and backups. Provider pinned exactly at 2.0.0-beta.1 (the provider is beta-maturity). AppwriteProjectKey is import-only (mint it in the Console, then import it into the state with "$(terradart engine)" -chdir=tf-out import); the quickstart does not create one.

Generated by the maintainer pipeline (terradart-codegen wrap against a filtered fixture); do not hand-edit files under lib/src/.

Libraries

auth
Appwrite Auth — users and teams, and the AppwritePermission / AppwriteRole that grant them access to buckets, files, tables and rows.
backups
Project-level Appwrite backup policies (shared TablesDB / storage).
catalog
Static catalog of all curated terradart_appwrite factories.
data
Read-only Appwrite data sources (no terraform apply side effects).
functions
Appwrite Functions — runtimes, variables, and deployments.
messaging
Appwrite Messaging — providers, topics, and subscribers.
mongo
Dedicated MongoDB databases, backups, and branches.
mysql
Dedicated MySQL databases, backups, branches, and connection pooler.
postgresql
Dedicated PostgreSQL databases, backups, branches, pooler, and extensions.
project
Appwrite projects and project API keys (organization-scoped).
provider
Provider block factory and version constants for appwrite/appwrite.
proxy
Appwrite proxy rules (custom domains for sites and functions).
sites
Appwrite Sites — hosted frontends, variables, and deployments.
storage
Appwrite file storage (buckets and files).
tablesdb
Appwrite TablesDB — shared databases, tables, columns, indexes, and rows.
terradart_appwrite
Curated Appwrite surface for TerraDart (official appwrite/appwrite Terraform provider).
webhooks
Appwrite webhooks.