Skip to main content

Technical Glossary

TakeShape uses a combination unique terminology and unique uses of common terminology to describe its functionality. This glossary will define all potentially ambiguous terms used in this specification, in alphabetical order.



A property on a shape's field that starts with the "@" symbol. Similar to GraphQL directives (also called annotations).



Data in a TakeShape project's database. All content must be an instance of a shape in the project schema's root-level "shapes" object.



  1. A GraphQL query field. Read more about fields in the GraphQL docs.

  2. A property in a Shape's schema. Shapes are analogous to GraphQL types. A shape's properties will appear as fields on queries that return that shape.



Any object or property that TakeShape will treat as part of a project's schema, though it will not appear in the editable JSON schema.



The process of fetching data from an external API and storing it in a TakeShape project's database.



  1. A TakeShape project pre-configured to generate an API with a specific set of functionality.

  2. A directory, usually in a git repository or a project folder, that contains a pattern.yml file with metadata and a schema.json file with a valid TakeShape project schema.



A type definition that defines a property within one shape as being an instance of another shape that exists in the schema or service schema.



A resolver is a function that executes when a query or mutation is called, or a shape field is accessed. A resolver is required on queries & mutations, and may be used in a shape property.



  1. Project Schema — JSON code used to configure a TakeShape project. This JSON will contain objects that define the project's functionality.

  2. Shape Schema — JSON code used to configure the fields on a shape.



A REST or GraphQL API provided by an organization other than TakeShape.