class
Detector::Specification::Appwrite
- Detector::Specification::Appwrite
- Detector
- Reference
- Object
Overview
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.
Defined in:
detector/detectors/specification/appwrite.crConstant Summary
-
CONFIG_FILENAMES =
{"appwrite.json", "appwrite.config.json"} -
PROJECT_ID_MARKER =
/"projectId"\s*:/ -
projectIdis 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/tablesDBare the >=1.6 names forcollections.
Class Method Summary
-
.tech_name : String
The tech name without needing an instance, so the registry can be read off the classes themselves rather than from a parallel list.
Instance Method Summary
-
#applicable?(filename : String) : Bool
Pinned to the two CLI-generated filenames.
- #detect(filename : String, file_contents : String) : Bool
-
#idempotent? : Bool
Registers each config path in
CodeLocator. -
#set_name
Registers each config path in
CodeLocator.
Instance methods inherited from class Detector
applicable?(filename : String) : Bool
applicable?,
base_relative_path(filename : String) : String
base_relative_path,
content_matches?(file_contents : String, markers : Regex) : Bool
content_matches?,
detect(filename : String, file_contents : String) : Bool
detect,
gemfile_dependency?(file_contents : String, gem_name : String) : Bool
gemfile_dependency?,
gemspec_dependency?(file_contents : String, gem_name : String) : Bool
gemspec_dependency?,
idempotent? : Bool
idempotent?,
logger : NoirLogger
logger,
name : String
name,
path_sensitive? : Bool
path_sensitive?
Constructor methods inherited from class Detector
new(options : Hash(String, YAML::Any))
new
Macros inherited from class Detector
detector_for(tech, extensions = nil, basenames = nil, path_segments = nil, idempotent = nil)
detector_for
Class Method Detail
The tech name without needing an instance, so the registry can be read off the classes themselves rather than from a parallel list.
Instance Method Detail
Pinned to the two CLI-generated filenames. Nothing else in a
project tree is named this, so the detector never reads an
unrelated .json.