The COMAND repository is the foundation of the COMAND platform. It stores content, schema and functionality for COMAND apps. Almost all COMAND features require a repository to function.
COMAND content, schemas and functionality are all stored as objects in a repository.
Objects can be:
- organized in a hierarchy, much like files in a traditional file system.
- accessed by a hierarchy path, also like files in a file system.
- accessed by a query, similar to rows in a database.
- accessed by a key, similar to a key-value store.
Content Types are the building blocks of a repository. They define how objects are stored, organized and function. A good way to get started with them is to work with them in webCOMAND.
Content Types are like Classes
From a developer perspective, it is helpful to think of content types as object-oriented classes. They serve the same purpose, but offer additional features.
- Objects - Instances of a content type are called objects. They are also called "content records", to be less confusing for end users.
- Fields - Content types have fields (aka properties), which define the name and storage type of object data.
- Methods - Content types have methods, which define object functionality. Methods can be exposed to the user interface as "actions", for end users to interact with directly.
- Inheritance - Content types extend other content types to inherit their fields and methods.
- Interfaces - Content types can implement interfaces to abstract their fields and methods for unified access.
- Defined in Repository - Content types are defined in the repository, not source code.
- Field Organization and Layout - Content types define field organization and layout, in terms of how they should be listed and presented in user interfaces and software output.
- Field Labels and Help - Content types define field labels, help and other information to better describe their purpose to developers and end users. This can be thought of as a more structured form of code comments.
- Keys - Objects are typically assigned a string of text that can be used to uniquely identify the object from other objects of the same content type within the same container. The key is typically based on the value of the first unique field in a content type. It is automatically produced and stored in the repository for fast lookup and comparison. For more information, see Object Key.