class

Detector::Specification::Appwrite

Inherits Detector < Reference < Object

Appwrite projects declare their databases, collections/tables, functions and storage buckets in appwrite.json (the CLI writes appwrite.config.json from v6). The server generates the whole REST surface from that file, so it is the only thing to read.

Constants

CONFIG_FILENAMES = {"appwrite.json", "appwrite.config.json"}
PROJECT_ID_MARKER = /"projectId"\s*:/

projectId is mandatory in every Appwrite config and is the cheap gate before paying for a JSON parse.

RESOURCE_KEYS = {"collections", "tables", "tablesDB", "databases", "functions", "buckets"}

At least one resource family has to be present for the file to describe any surface at all. tables/tablesDB are the >=1.6 names for collections.

Class methods

tech_name

The tech name without needing an instance, so the registry can be read off the classes themselves rather than from a parallel list.

Source

Instance methods

applicable?(filename : String) : Bool

Pinned to the two CLI-generated filenames. Nothing else in a project tree is named this, so the detector never reads an unrelated .json.

Source
detect(filename : String, file_contents : String) : Bool
Source
idempotent?

Registers each config path in CodeLocator.

Source
set_name

Registers each config path in CodeLocator.

Source