Jump to: navigation, search

Graffiti/Dictionary

Graffiti Dictionary

A common API for services, admins, and users to discover and share their metadata vocabulary. This is the basis for creating an agreement on how to describe the various capabilities the cloud provides. It supports both unstructured properties and structured / hierarchical metadata in the form of "capability types". All definitions in the Dictionary are "namespaced".

Expanded Contextual Overlay

Graffiti-Architecture-ConceptOverlayExpanded.png

Capability Types

Graffiti embraces the idea that cloud resources may be described using capabilities and requirements, a concept influenced by some parts of OpenStack today as well as by industry specifications like OASIS TOSCA (Please note, Graffiti is NOT an orchestration engine, it only assists in describing and locating existing resources in the cloud.).

A Capability Type is the following:

  • A metadata schema that describes a type of capability a cloud resource may provide
    • e.g. “Centos” may be a type of capability
  • Defines the structure of observable properties in a subset of the JSON Schema draft 04 format
    • The names, data types and allowed values of properties.
      • e.g. Centos has a version and architecture
  • Hierarchical
    • Can inherit properties from parent Capability Types
    • e.g. Centos is software and all software has a version
  • Referenced by requirements
    • e.g. My application requires Centos
  • Scoped by a namespace
    • Uniquely named within a namespace
      • Your definition of "Classified" is not the same as mine, so we'll agree to disagree
    • RBAC is done on the namespace, not on individual types
    • Capability Types may derive from Types in other namespaces


Namespaces

Namespaces contain metadata definitions. RBAC is done on the namespace.

Graffiti-DictionaryNamespaces.PNG