Appwrite · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Appwrite Migrations API

17 actions 17 updates phrasing extends openapi/appwrite-migrations-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Appwrite's API. It is a proposal applied on top of the contract, not a document Appwrite publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 17 · first 16 shown; the file carries all of them

$.info
$.paths['/migrations'].get
$.paths['/migrations/appwrite'].post
$.paths['/migrations/appwrite/report'].get
$.paths['/migrations/csv/exports'].post
$.paths['/migrations/csv/imports'].post
$.paths['/migrations/firebase'].post
$.paths['/migrations/firebase/report'].get
$.paths['/migrations/json/exports'].post
$.paths['/migrations/json/imports'].post
$.paths['/migrations/nhost'].post
$.paths['/migrations/nhost/report'].get
$.paths['/migrations/supabase'].post
$.paths['/migrations/supabase/report'].get
$.paths['/migrations/{migrationId}'].get
$.paths['/migrations/{migrationId}'].delete

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Appwrite Migrations API
  version: 1.0.0
extends: openapi/appwrite-migrations-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 16
- target: $.paths['/migrations'].get
  update:
    x-apievangelist-phrasing:
      intent: List migrations in the project
      effect: read
      questions:
      - What migrations have run in my project, and did any of them fail?
      - Can I search my migration history and see each one's progress?
      instructions:
      - text: List all migrations in this project.
      - text: Search my migrations for {search}.
        slots:
          search: query.search
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/appwrite'].post
  update:
    x-apievangelist-phrasing:
      intent: Migrate data from another Appwrite project
      effect: write
      questions:
      - How do I copy databases, users and files from one Appwrite project into another?
      - What happens to duplicate records when moving data between two Appwrite projects?
      instructions:
      - text: Migrate {resources} from Appwrite project {projectId} at {endpoint} using key {apiKey}.
        slots:
          resources: requestBody.resources
          projectId: requestBody.projectId
          endpoint: requestBody.endpoint
          apiKey: requestBody.apiKey
      - text: Pull {resources} from project {projectId} on {endpoint} with API key {apiKey}, handling duplicates as {onDuplicate}.
        slots:
          resources: requestBody.resources
          projectId: requestBody.projectId
          endpoint: requestBody.endpoint
          apiKey: requestBody.apiKey
          onDuplicate: requestBody.onDuplicate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/appwrite/report'].get
  update:
    x-apievangelist-phrasing:
      intent: Preview an Appwrite-to-Appwrite migration
      effect: read
      questions:
      - Before migrating from another Appwrite project, how can I see which resources it holds?
      - Can I get a dry-run report of a source Appwrite project?
      instructions:
      - text: Report on {resources} in Appwrite project {projectID} at {endpoint} using key {key}.
        slots:
          resources: query.resources
          projectID: query.projectID
          endpoint: query.endpoint
          key: query.key
      - text: Analyze source Appwrite project {projectID} on {endpoint} with key {key} for {resources} before migrating.
        slots:
          projectID: query.projectID
          endpoint: query.endpoint
          key: query.key
          resources: query.resources
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/csv/exports'].post
  update:
    x-apievangelist-phrasing:
      intent: Export collection documents to a CSV file
      effect: write
      questions:
      - How do I export a collection's documents to a CSV file?
      - Can I choose the delimiter and which columns go into the CSV export?
      - Will I get an email with a download link when a CSV export finishes?
      instructions:
      - text: Export collection {collectionId} in database {databaseId} to CSV file {filename}.
        slots:
          collectionId: requestBody.collectionId
          databaseId: requestBody.databaseId
          filename: requestBody.filename
      - text: Export columns {columns} of {collectionId} in {databaseId} to {filename} using delimiter {delimiter}.
        slots:
          columns: requestBody.columns
          collectionId: requestBody.collectionId
          databaseId: requestBody.databaseId
          filename: requestBody.filename
          delimiter: requestBody.delimiter
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/csv/imports'].post
  update:
    x-apievangelist-phrasing:
      intent: Import documents from a CSV file
      effect: write
      questions:
      - How do I load rows from a CSV file in Storage into a database collection?
      - What happens to CSV rows that duplicate existing documents on import?
      instructions:
      - text: Import CSV file {fileId} from bucket {bucketId} into collection {collectionId} of database {databaseId}.
        slots:
          fileId: requestBody.fileId
          bucketId: requestBody.bucketId
          collectionId: requestBody.collectionId
          databaseId: requestBody.databaseId
      - text: Load the CSV {fileId} in {bucketId} into {databaseId}/{collectionId}, treating duplicates as {onDuplicate}.
        slots:
          fileId: requestBody.fileId
          bucketId: requestBody.bucketId
          databaseId: requestBody.databaseId
          collectionId: requestBody.collectionId
          onDuplicate: requestBody.onDuplicate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/firebase'].post
  update:
    x-apievangelist-phrasing:
      intent: Migrate a Firebase project into Appwrite
      effect: write
      questions:
      - How do I move my Firebase users and data into Appwrite?
      - What credentials does a Firebase migration need?
      instructions:
      - text: Migrate {resources} from Firebase using service account {serviceAccount}.
        slots:
          resources: requestBody.resources
          serviceAccount: requestBody.serviceAccount
      - text: Start a Firebase import of {resources} with credentials {serviceAccount}.
        slots:
          resources: requestBody.resources
          serviceAccount: requestBody.serviceAccount
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/firebase/report'].get
  update:
    x-apievangelist-phrasing:
      intent: Preview a Firebase migration
      effect: read
      questions:
      - Before migrating off Firebase, can I see which resources would be brought over?
      - Is there a report of my Firebase project's contents ahead of a migration?
      instructions:
      - text: Report on {resources} in the Firebase project for service account {serviceAccount}.
        slots:
          resources: query.resources
          serviceAccount: query.serviceAccount
      - text: Analyze Firebase {resources} with {serviceAccount} before I migrate.
        slots:
          resources: query.resources
          serviceAccount: query.serviceAccount
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/json/exports'].post
  update:
    x-apievangelist-phrasing:
      intent: Export collection documents to a JSON file
      effect: write
      questions:
      - How do I export a collection's documents as JSON?
      - Can I limit a JSON export to certain columns or documents matching queries?
      instructions:
      - text: Export collection {collectionId} of database {databaseId} to JSON file {filename}.
        slots:
          collectionId: requestBody.collectionId
          databaseId: requestBody.databaseId
          filename: requestBody.filename
      - text: Dump documents in {collectionId} matching {queries} from {databaseId} to JSON {filename}.
        slots:
          collectionId: requestBody.collectionId
          queries: requestBody.queries
          databaseId: requestBody.databaseId
          filename: requestBody.filename
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/json/imports'].post
  update:
    x-apievangelist-phrasing:
      intent: Import documents from a JSON file
      effect: write
      questions:
      - How do I load documents from a JSON file in Storage into a collection?
      - How are duplicate documents handled during a JSON import?
      instructions:
      - text: Import JSON file {fileId} from bucket {bucketId} into collection {collectionId} of database {databaseId}.
        slots:
          fileId: requestBody.fileId
          bucketId: requestBody.bucketId
          collectionId: requestBody.collectionId
          databaseId: requestBody.databaseId
      - text: Load JSON {fileId} in {bucketId} into {databaseId}/{collectionId} with duplicate handling {onDuplicate}.
        slots:
          fileId: requestBody.fileId
          bucketId: requestBody.bucketId
          databaseId: requestBody.databaseId
          collectionId: requestBody.collectionId
          onDuplicate: requestBody.onDuplicate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/nhost'].post
  update:
    x-apievangelist-phrasing:
      intent: Migrate an NHost project into Appwrite
      effect: write
      questions:
      - How do I bring my NHost auth and database over to Appwrite?
      - What connection details does an NHost migration require?
      instructions:
      - text: Migrate {resources} from NHost subdomain {subdomain} in {region} using admin secret {adminSecret}, database {database}, user {username} and password {password}.
        slots:
          resources: requestBody.resources
          subdomain: requestBody.subdomain
          region: requestBody.region
          adminSecret: requestBody.adminSecret
          database: requestBody.database
          username: requestBody.username
          password: requestBody.password
      - text: Start an NHost import from {subdomain} ({region}), db {database} on port {port}, as {username}/{password} with secret {adminSecret}, for {resources}.
        slots:
          subdomain: requestBody.subdomain
          region: requestBody.region
          database: requestBody.database
          port: requestBody.port
          username: requestBody.username
          password: requestBody.password
          adminSecret: requestBody.adminSecret
          resources: requestBody.resources
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/nhost/report'].get
  update:
    x-apievangelist-phrasing:
      intent: Preview an NHost migration
      effect: read
      questions:
      - Can I see what's in my NHost project before migrating it?
      - Which NHost resources can be carried over, according to a pre-migration report?
      instructions:
      - text: Report on NHost {resources} at {subdomain} in {region} with secret {adminSecret}, db {database}, user {username}, password {password}.
        slots:
          resources: query.resources
          subdomain: query.subdomain
          region: query.region
          adminSecret: query.adminSecret
          database: query.database
          username: query.username
          password: query.password
      - text: Analyze NHost project {subdomain} ({region}) db {database} as {username}/{password}, secret {adminSecret}, for {resources} before migrating.
        slots:
          subdomain: query.subdomain
          region: query.region
          database: query.database
          username: query.username
          password: query.password
          adminSecret: query.adminSecret
          resources: query.resources
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/supabase'].post
  update:
    x-apievangelist-phrasing:
      intent: Migrate a Supabase project into Appwrite
      effect: write
      questions:
      - How do I move auth users and tables from Supabase into Appwrite?
      - What database connection details does a Supabase migration need?
      instructions:
      - text: Migrate {resources} from Supabase at {endpoint} using key {apiKey}, database host {databaseHost}, user {username}, password {password}.
        slots:
          resources: requestBody.resources
          endpoint: requestBody.endpoint
          apiKey: requestBody.apiKey
          databaseHost: requestBody.databaseHost
          username: requestBody.username
          password: requestBody.password
      - text: Start a Supabase import from {endpoint} with key {apiKey}, db {databaseHost}:{port} as {username}/{password}, for {resources}.
        slots:
          endpoint: requestBody.endpoint
          apiKey: requestBody.apiKey
          databaseHost: requestBody.databaseHost
          port: requestBody.port
          username: requestBody.username
          password: requestBody.password
          resources: requestBody.resources
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/supabase/report'].get
  update:
    x-apievangelist-phrasing:
      intent: Preview a Supabase migration
      effect: read
      questions:
      - Can I get a report of my Supabase project's resources before migrating?
      - Which Supabase data would an import pick up?
      instructions:
      - text: Report on Supabase {resources} at {endpoint} with key {apiKey}, host {databaseHost}, user {username}, password {password}.
        slots:
          resources: query.resources
          endpoint: query.endpoint
          apiKey: query.apiKey
          databaseHost: query.databaseHost
          username: query.username
          password: query.password
      - text: Analyze Supabase project {endpoint} (key {apiKey}, db {databaseHost}, {username}/{password}) for {resources} before migrating.
        slots:
          endpoint: query.endpoint
          apiKey: query.apiKey
          databaseHost: query.databaseHost
          username: query.username
          password: query.password
          resources: query.resources
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/{migrationId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a migration's status
      effect: read
      questions:
      - How far along is my running migration?
      - What errors did a specific migration hit?
      instructions:
      - text: Show the status of migration {migrationId}.
        slots:
          migrationId: path.migrationId
      - text: Get the progress and errors for migration {migrationId}.
        slots:
          migrationId: path.migrationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/{migrationId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a migration from history
      effect: destructive
      questions:
      - How do I clear an old migration out of my project's history?
      - Can I remove a migration record I no longer need?
      instructions:
      - text: Delete migration {migrationId}.
        slots:
          migrationId: path.migrationId
      - text: Remove migration {migrationId} from the history.
        slots:
          migrationId: path.migrationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/migrations/{migrationId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Retry a failed migration
      effect: write
      questions:
      - My migration failed; can I run it again?
      - How do I re-attempt a migration without setting it up from scratch?
      instructions:
      - text: Retry failed migration {migrationId}.
        slots:
          migrationId: path.migrationId
      - text: Re-run migration {migrationId}.
        slots:
          migrationId: path.migrationId
      method: generated
      generated: '2026-09-26'