Skip to content

Commit

Permalink
Replicate specification of Object extension into Storage Root extensi…
Browse files Browse the repository at this point in the history
…ons section

Resolves: #557
  • Loading branch information
anw822 committed Apr 7, 2022
1 parent 77ab30d commit 3e4ceeb
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 3 deletions.
26 changes: 24 additions & 2 deletions draft/spec/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1105,10 +1105,32 @@ <h2>Storage Root Extensions</h2>
</p>
<p>
The base directory of an OCFL Storage Root MAY contain a directory named <code>extensions</code> for the
purposes of extending the functionality of an OCFL Storage Root. The storage root <code>extensions</code>
directory <span id="E086">MUST</span> conform to the same guidelines and limitations as those defined for
purposes of extending the functionality of an OCFL Storage Root. The guidelines and limitations for the
storage root <code>extensions</code> directory are defined in alignment with those of the
<a href="#object-extensions">object extensions</a>.
</p>
<p>
The <code>extensions</code> directory <span id="E112">MUST NOT</span> contain any files, and no
sub-directories other than extension sub-directories. Extension sub-directories
<span id="W016">SHOULD</span> be named according to a <a>registered extension name</a>. The specific
structure and function of the extension, as well as a declaration of the registered extension name
<span id="E113">MUST</span> be defined in one of the following locations:
</p>
<ul>
<li>
The <a href="https://ocfl.github.io/extensions/">OCFL Extensions repository</a>
</li>
<li>
The Storage Root, as a plain text document directly in the Storage Root
</li>
</ul>
<blockquote class="informative">
<p>
Non-normative note: Extension sub-directories should use the same name as a registered extension
in order to both avoid the possiblity of an extension sub-directory colliding with the name of another
registered extension as well as to facilitate the recognition of extensions by OCFL clients.
</p>
</blockquote>
<blockquote class="informative">
<p>
Non-normative note: Storage extensions can be used to support additional features, such as providing
Expand Down
4 changes: 3 additions & 1 deletion draft/spec/validation-codes.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@
| E083 | 'There MUST be a deterministic mapping from an object identifier to a unique storage path.' | https://ocfl.io/draft/spec/#E083
| E084 | 'Storage hierarchies MUST NOT include files within intermediate directories.' | https://ocfl.io/draft/spec/#E084
| E085 | 'Storage hierarchies MUST be terminated by OCFL Object Roots.' | https://ocfl.io/draft/spec/#E085
| E086 | 'The storage root extensions directory MUST conform to the same guidelines and limitations as those defined for object extensions.' | https://ocfl.io/draft/spec/#E086
| E087 | 'An OCFL validator MUST ignore any files in the storage root it does not understand.' | https://ocfl.io/draft/spec/#E087
| E088 | 'An OCFL Storage Root MUST NOT contain directories or sub-directories other than as a directory hierarchy used to store OCFL Objects or for storage root extensions.' | https://ocfl.io/draft/spec/#E088
| E089 | 'If the preservation of non-OCFL-compliant features is required then the content MUST be wrapped in a suitable disk or filesystem image format which OCFL can treat as a regular file.' | https://ocfl.io/draft/spec/#E089
Expand All @@ -120,6 +119,8 @@
| E108 | 'The contentDirectory value MUST represent a direct child directory of the version directory in which it is found.' | https://ocfl.io/draft/spec/#E108
| E110 | 'A unique identifier for the OCFL Object MUST NOT change between versions of the same object.' | https://ocfl.io/draft/spec/#E110
| E111 | 'If present, [the value of the fixity key] MUST be a JSON object, which may be empty.' | https://ocfl.io/draft/spec/#E111
| E112 | 'The extensions directory must not contain any files, and no sub-directories other than extension sub-directories.' | https://ocfl.io/draft/spec/#E112
| E113 | 'The specific structure and function of the extension, as well as a declaration of the registered extension name must be defined in one of the following locations: The OCFL Extensions repository OR The Storage Root, as a plain text document directly in the Storage Root.' | https://ocfl.io/draft/spec/#E113

## Warnings (corresponding with SHOULD in specification)

Expand All @@ -139,3 +140,4 @@
| W013 | 'In an OCFL Object, extension sub-directories SHOULD be named according to a registered extension name.' | https://ocfl.io/draft/spec/#W013
| W014 | 'Storage hierarchies within the same OCFL Storage Root SHOULD use just one layout pattern.' | https://ocfl.io/draft/spec/#W014
| W015 | 'Storage hierarchies within the same OCFL Storage Root SHOULD consistently use either a directory hierarchy of OCFL Objects or top-level OCFL Objects.' | https://ocfl.io/draft/spec/#W015
| W016 | 'In the Storage Root, extension sub-directories SHOULD be named according to a registered extension name.' | https://ocfl.io/draft/spec/#W016

0 comments on commit 3e4ceeb

Please sign in to comment.