RFC 6208

Cloud Data Management Interface (CDMI) Media Types

πŸ“… published April 2011, from ietf

RFC 6208: Cloud Data Management Interface (CDMI) Media Types πŸ¦‹

Okay bestie, let's get into RFC 6208 πŸ’– It's all about the media types for the CDMI (Cloud Data Management Interface) storage stuff ☁️. K. Sankar, Ed. from Cisco πŸŽ€ and A. Jones from SNIA ✨ wrote it, it's published in April 2011, and the category is Informational 🌸, so it's a "here's the info" doc, not a Standards Track thing 🫢. The ISSN is 2070-1721 πŸ’œ. The title block doesn't list anything this one obsoletes or updates, so it's just doing its own thing πŸ’….


Abstract ✨

This doc describes a few Internet media types that SNIA defined for CDMI. They are:

  • application/cdmi-object
  • application/cdmi-container
  • application/cdmi-domain
  • application/cdmi-capability
  • application/cdmi-queue

Status of This Memo πŸ“œ

This doc is not an Internet Standards Track specification. It's published for info purposes 🧚

It's a product of the IETF 🌈 and it represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every doc the IESG approves is a candidate for any level of Internet Standard, so check out Section 2 of RFC 5741 for the deets πŸ™ˆ

For the current status, any errata, and how to give feedback, go to http://www.rfc-editor.org/info/rfc6208 πŸ“

Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.

This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they're in effect on the publication date. Please actually read these, because they spell out your rights and restrictions for this doc πŸ‘€ Code Components pulled out of this doc must include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the Simplified BSD License 🫢

Table of Contents 🧚

   1. Introduction ....................................................3
      1.1. Requirements Language ......................................3
   2. Cloud Data Management Domain and Its Relevance ..................3
   3. Processing Guidelines ...........................................4
      3.1. Media Type: application/cdmi-object ........................4
      3.2. Media Type: application/cdmi-container .....................4
      3.3. Media Type: application/cdmi-domain ........................5
      3.4. Media Type: application/cdmi-capability ....................5
      3.5. Media Type: application/cdmi-queue .........................5
   4. Transport Considerations ........................................6
   5. IANA Considerations .............................................6
      5.1. Media Type: application/cdmi-object ........................6
      5.2. Media Type: application/cdmi-container .....................7
      5.3. Media Type: application/cdmi-domain ........................8
      5.4. Media Type: application/cdmi-capability ....................9
      5.5. Media Type: application/cdmi-queue ........................10
   6. Security Considerations ........................................11
      6.1. Confidentiality and Integrity .............................11
      6.2. Access Control ............................................11
      6.3. Audit .....................................................12
      6.4. JSON Security Considerations ..............................12
      6.5. Executable/Active Content .................................12
   7. Acknowledgements ...............................................12
   8. References .....................................................12
      8.1. Normative References ......................................12
      8.2. Informative References ....................................13

1. Introduction ✨

The Cloud Data Management Interface (CDMI) [CDMI-1], developed by the Storage Networking Industry Association (SNIA), is the functional interface apps use to create, retrieve, update, and delete data elements in the cloud 🩡 Through it, the client can discover what the cloud storage offering can do, and use it to manage containers and the data sitting in them. Metadata can also be set on containers and their contained data elements through this interface πŸŽ€

1.1. Requirements Language 🌸

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this doc are to be interpreted as described in RFC 2119 [RFC2119] πŸ€“

2. Cloud Data Management Domain and Its Relevance 🌈

A storage cloud is a storage service hosted either on premise or off premise, across a network ☁️ A big part of the cloud model, in general, is the idea of a pool of resources that you draw from on demand, in small increments (smaller than what you'd usually buy with equipment) πŸ›’ By abstracting data storage behind a set of service interfaces and delivering it on demand, a wide range of actual offerings and implementations becomes possible πŸ’– The only type of storage excluded from this definition is storage delivered in fixed capacity increments rather than on demand πŸ™…β€β™€οΈ

The CDMI defines a set of functional interfaces (data paths) and management interfaces (control paths) to create, retrieve, update, and delete data elements from a storage cloud 🧚 Another big concept here is metadata. When you're managing large amounts of data with different requirements, metadata is a handy way to express those requirements, so the underlying data services can treat the data differently to meet them 🫢 CDMI also defines an extensible metadata system for storage clouds ✨

Like before, the client can discover the capabilities of the cloud storage offering and use this interface to manage containers and the data placed in them. System metadata can also be added to containers and their contained data elements through this interface πŸ’…

The hierarchy CDMI defines goes like this:

  • The basic element of storage is an object. 🫧
  • Objects are stored in a container hierarchy. πŸ“¦
  • CDMI also defines an object called a queue, which has special properties for in-order, first-in, first-out creation and fetching of queue objects, kind of like a container of data objects 🎟️
  • A cloud offering can also support domains, which let administrative ownership be associated with stored objects. Domains can be hierarchical too, allowing corporate domains with multiple child domains for departments or individuals 🏒 The domain concept is also used to map Access Control Lists (ACLs) to principals, and to aggregate usage data used to bill, meter, and monitor cloud usage πŸ“Š (Note: The CDMI "domain" defined here is not a DNS domain name as specified in [RFC1076] and [RFC1024]. πŸ™ƒ)
  • Finally, a capabilities resource and associated URI [RFC3986] lets a client discover the capabilities of the offering and its implementation of CDMI πŸ”

3. Processing Guidelines πŸŽ€

This section sums up how each media type gets processed. This doc only gives the essential info. The CDMI specification [CDMI-1] has more details and examples, and it's the final authority on the processing stuff πŸ‘‘

3.1. Media Type: application/cdmi-object 🫧

A CDMI object is the basic storage element in a CDMI system, kind of like a file in a filesystem πŸ“„ It's represented in the CDMI interface in JavaScript Object Notation (JSON) format [RFC4627]. (Check out the JSON web site at [JSON-1] for general info about JSON 🧾) Each data object has a set of well-defined fields that include a single value and optional metadata πŸ’œ Implementations are free to store the data in whatever form they choose, but application/cdmi-object SHOULD be represented in the CDMI interface as defined in Section 8 of the CDMI specification [CDMI-1] 🌸

3.2. Media Type: application/cdmi-container πŸ“¦

A container object is the fundamental grouping of stored data within CDMI, and it's basically a directory in a filesystem πŸ“ Each container has zero or more child objects and a set of well-defined fields that include standardized and custom metadata 🏷️ A container can also hold other containers, similar to sub-directories in a filesystem πŸͺ† Implementations are free to represent the container in whatever form they choose, but application/cdmi-container SHOULD be represented in the CDMI interface as defined in Section 9 of the CDMI specification [CDMI-1] πŸ’–

3.3. Media Type: application/cdmi-domain 🏒

Domain objects represent the idea of administrative ownership of stored data within a CDMI storage system πŸ‘‘ A CDMI offering may include a hierarchy of domains that give access to domain-related info within a CDMI context. This domain hierarchy is a series of CDMI objects that correspond to parent and child domains, with each domain matching a logical grouping of objects that are managed together 🧩 Section 10 of the CDMI specification [CDMI-1] covers the info content, representation, and processing of domain objects 🀍

3.4. Media Type: application/cdmi-capability πŸ”

Capability objects are a special class of container objects that let a CDMI client figure out what subset of the CDMI standard a CDMI provider has implemented πŸ•΅οΈβ€β™€οΈ For each URI in a CDMI system, the set of interactions the system can perform against that URI is described by the presence of named "capabilities". Each capability present for a given URI tells you what functionality the cloud storage system will allow against that URI πŸ”“ Capabilities are always static 🧊 Section 12 of the CDMI specification [CDMI-1] details how capability objects are represented and processed 🌈

3.5. Media Type: application/cdmi-queue 🎟️

Queues are a special class of container object, used to provide first-in, first-out access when storing and retrieving data ⏳ A queue writer PUTs objects in the queue, and a queue reader GETs objects from it, acknowledging receipt of the last object it got πŸ“¬ Queuing is a simple way for one or more writers to send data to a single reader in a reliable way πŸ’Œ If the cloud storage system supports queues, cloud clients create queue objects using the same mechanism they use to create data objects 🫢 Section 11 of the CDMI specification [CDMI-1] details the operations and processing of queue objects 🧚

5.1. Media Type: application/cdmi-object ✨

okay so first up is the cdmi-object media type πŸ¦‹ it's the one for CDMI objects, and it gets registered with the full template. the template is copied exactly below so nothing gets lost πŸ’…

   Type name: application

   Subtype name: cdmi-object

   Required parameters: none

   Optional parameters: none

   Encoding considerations: Assumes that the representation is always
   UTF-8 as defined in [RFC3629] and 8bit as defined in [RFC4288]

   Security considerations: See Section 6 of RFC 6208

   Interoperability considerations: none

   Published specification: RFC 6208

   Applications that use this media type: Implementations of the Cloud
   Data Management Interface (CDMI) defined by the Storage Networking
   Industry Association (SNIA)
   Additional information:

      Magic number(s): n/a

      File extension(s): .cdmio

      Macintosh file type code(s): TEXT

   Person and email address to contact for further information:
   Arnold Jones, arnold.jones@snia.org

   Intended usage: COMMON

   Restrictions on usage: none

   Author: SNIA Cloud Storage Initiative, cloudtwg@snia.org

   Change controller: SNIA Cloud Storage Initiative, cloudtwg@snia.org

5.2. Media Type: application/cdmi-container 🌸

next up is cdmi-container πŸ“¦ same deal, same vibe, just a different file extension. here's the full template 🫢

   Type name: application

   Subtype name: cdmi-container

   Required parameters: none

   Optional parameters: none

   Encoding considerations: Assumes that the representation is always
   UTF-8 as defined in [RFC3629] and 8bit as defined in [RFC4288]

   Security considerations: See Section 6 of RFC 6208

   Interoperability considerations: none

   Published specification: RFC 6208

   Applications that use this media type: Implementations of the Cloud
   Data Management Interface (CDMI) defined by the Storage Networking
   Industry Association (SNIA)
   Additional information:

      Magic number(s): n/a

      File extension(s): .cdmic

      Macintosh file type code(s): TEXT

   Person and email address to contact for further information:
   Arnold Jones, arnold.jones@snia.org

   Intended usage: COMMON

   Restrictions on usage: none

   Author: SNIA Cloud Storage Initiative, cloudtwg@snia.org

   Change controller: SNIA Cloud Storage Initiative, cloudtwg@snia.org

5.3. Media Type: application/cdmi-domain 🧚

now we've got cdmi-domain πŸ‘‘ the template is literally the same as the last two except for the subtype and the file extension, so check the details carefully bestie πŸ™ˆ

   Type name: application

   Subtype name: cdmi-domain

   Required parameters: none

   Optional parameters: none

   Encoding considerations: Assumes that the representation is always
   UTF-8 as defined in [RFC3629] and 8bit as defined in [RFC4288]

   Security considerations: See Section 6 of RFC 6208

   Interoperability considerations: none

   Published specification: RFC 6208

   Applications that use this media type: Implementations of the Cloud
   Data Management Interface (CDMI) defined by the Storage Networking
   Industry Association (SNIA)
   Additional information:

      Magic number(s): n/a

      File extension(s): .cdmid

      Macintosh file type code(s): TEXT

   Person and email address to contact for further information:
   Arnold Jones, arnold.jones@snia.org

   Intended usage: COMMON

   Restrictions on usage: none

   Author: SNIA Cloud Storage Initiative, cloudtwg@snia.org

   Change controller: SNIA Cloud Storage Initiative, cloudtwg@snia.org

5.4. Media Type: application/cdmi-capability πŸ’œ

cdmi-capability is next, and it's giving consistency πŸ’… same template, different subtype, file extension is .cdmia.

   Type name: application

   Subtype name: cdmi-capability

   Required parameters: none

   Optional parameters: none

   Encoding considerations: Assumes that the representation is always
   UTF-8 as defined in [RFC3629] and 8bit as defined in [RFC4288]

   Security considerations: See Section 6 of RFC 6208

   Interoperability considerations: none

   Published specification: RFC 6208

   Applications that use this media type: Implementations of the Cloud
   Data Management Interface (CDMI) defined by the Storage Networking
   Industry Association (SNIA)
   Additional information:

      Magic number(s): n/a

      File extension(s): .cdmia

      Macintosh file type code(s): TEXT

   Person and email address to contact for further information:
   Arnold Jones, arnold.jones@snia.org

   Intended usage: COMMON

   Restrictions on usage: none

   Author: SNIA Cloud Storage Initiative, cloudtwg@snia.org

   Change controller: SNIA Cloud Storage Initiative, cloudtwg@snia.org

5.5. Media Type: application/cdmi-queue πŸ“

last media type, cdmi-queue πŸŽ€ the file extension here is .cdmiq. the template is the same otherwise, so this is the final one in the set ✨

   Type name: application

   Subtype name: cdmi-queue

   Required parameters: none

   Optional parameters: none

   Encoding considerations: Assumes that the representation is always
   UTF-8 as defined in [RFC3629] and 8bit as defined in [RFC4288]

   Security considerations: See Section 6 of RFC 6208

   Interoperability considerations: none

   Published specification: RFC 6208

   Applications that use this media type: Implementations of the Cloud
   Data Management Interface (CDMI) defined by the Storage Networking
   Industry Association (SNIA)
   Additional information:

   Magic number(s): n/a

      File extension(s): .cdmiq

      Macintosh file type code(s): TEXT

   Person and email address to contact for further information:
   Arnold Jones, arnold.jones@snia.org

   Intended usage: COMMON

   Restrictions on usage: none

   Author: SNIA Cloud Storage Initiative, cloudtwg@snia.org

   Change controller: SNIA Cloud Storage Initiative, cloudtwg@snia.org

6. Security Considerations πŸ”₯

okay bestie this part is SERIOUS 😭 security is not a joke, so read every word. the section was written with RFC 3552 [RFC3552] as a guide. CDMI is an application interface, so the relevant security stuff is confidentiality, integrity, access control, and audit. transport and endpoint security stuff like Distributed Denial of Service (DDoS) is orthogonal, and things like non-repudiation are left to the application that uses this interface πŸ›‘οΈ

6.1. Confidentiality and Integrity πŸ”

the confidentiality and integrity of CDMI exchanges are decided by the application that uses the interface. CDMI doesn't have its own specific mechanisms here and instead relies on transport mechanisms such as Transport Layer Security (TLS) (see [RFC2818]) for confidentiality and integrity of messages across the network.

6.2. Access Control πŸ—οΈ

the access control of CDMI endpoint URLs is beyond this specification. if it's needed, applications should use appropriate URL authentication and authorization techniques, such as URI routers for different classes of users, and restrict access based on URI origin.

for fine-grained control of CDMI objects, the CDMI specification [CDMI-1] has the Access Control Lists (ACLs) and Access Control Entries (ACEs). these are fully described in Section 16.1 of the CDMI specification [CDMI-1].

6.3. Audit πŸ“

the CDMI specification [CDMI-1] defines a set of metadata fields, as explained in Section 16.3, to help with access and other audit markers. the CDMI metadata system is extensible, and implementations can add more metadata as required by the security posture of the domain.

6.4. JSON Security Considerations 🧾

JSON-related security considerations, described in RFC 4627 [RFC4627], apply.

6.5. Executable/Active Content 🚫

the CDMI interface does not include any directives for active content.

7. Acknowledgements 🫢

the authors want to thank Mark Carlson and Peter Saint-Andre for their guidance and wisdom, Patrick Faltstrom for comments, and everyone in the SNIA CDMI Cloud Technical Work Group for all the insightful discussions and ideas πŸ’–

8. References πŸ“š

8.1. Normative References πŸ’Ž

   [CDMI-1]   SNIA, "Cloud Data Management Interface Version 1.0", 2010,
              <http://www.snia.org/tech_activities/standards/
              curr_standards/cdmi>.

   [JSON-1]   JSON, "Introducing JSON", 2006, <http://www.json.org>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

   [RFC3629]  Yergeau, F., "UTF-8, a transformation format of ISO
              10646", STD 63, RFC 3629, November 2003.

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66, RFC
              3986, January 2005.

   [RFC4288]  Freed, N. and J. Klensin, "Media Type Specifications and
              Registration Procedures", BCP 13, RFC 4288, December 2005.

   [RFC4627]  Crockford, D., "The application/json Media Type for
              JavaScript Object Notation (JSON)", RFC 4627, July 2006.

8.2. Informative References 🌈

   [RFC793]   Postel, J., "Transmission Control Protocol", STD 7, RFC
              793, September 1981.

   [RFC1024]  Partridge, C. and G. Trewitt, "HEMS variable definitions",
              RFC 1024, October 1987.

   [RFC1076]  Trewitt, G. and C. Partridge, "HEMS monitoring and control
              language", RFC 1076, November 1988.

   [RFC2818]  Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.

   [RFC3552]  Rescorla, E. and B. Korver, "Guidelines for Writing RFC
              Text on Security Considerations", BCP 72, RFC 3552, July
              2003.

Authors' Addresses 🌟

   Krishna Sankar (editor)
   Cisco
   170 W. Tasman Drive
   San Jose, CA  95134
   USA

   Phone: (408) 853 8475
   EMail: ksankar@cisco.com


   Arnold Jones
   SNIA
   4410 ArrowsWest Drive
   Colorado Springs, CO  80907
   USA

   Phone: (407) 574 7273
   EMail: arnold.jones@snia.org
πŸ“¦ where this page comes from