Home

Explain

Explain base:

Explain concept:

Implementation:

Infrastructure:

 
 

life-cycle management

A Collection maintains Units of information. Units with various content. These Units do not simply appear and disappear as files in a directory: they have a life-cycle; they enter via multiple steps before they are visible, and may make remove themselves with a plan.

Unit State mechanics

The Collection (~managing process) will "run" the cycle for each Unit. In some cases, it will need to inspect the content of the Unit to change its state. Also, Collection managers can influence the state of the Unit within the Collection.

Put yourself in the role of the Collection manager. You need to get the Unit in a distributable state (usually Published), and clean-up later. Any single Unit may go through each of the states below, from top to bottom. However, many states MAY be intermediate States which are skipped immediately.

Not all state transitions have equal means. The Collection Rules can be modified to adjust behavior. For instance, the Rule MAY put an automatic expiration on an incoming Unit. The Rules MAY also determine that the Collection managers have to agree on state transitions via the voting mechanism.

You may upload a new revision of the same Unit. For instance, when you want to set a deprecation of expiration date. The new Unit will transition step-by-step to reach the same UnitState as the original Unit. When it reaches that state, the original Unit revision will be removed. The discovered changes are logged.

The Unit States

The states below are in "natural order", which means that the Collector will default in facilitating transitions from top to bottom. However, this pattern can be influenced in various ways.

ms:UnitState Purpose and configuration
Free

This is a condition: there is no Unit with a specific name.

Reserved

The client would like to upload a certain Unit, which may still need to be created. At first, the client requests to be allowed to use a certain name.

The reservation request is a partial Unit. It may already specify authors, owners, unit type, size, etcetera. Probably, it does not contain a payload.

The Collection Rules may refuse to reserve the name. For instance, some of the provided conditions already fails. Of course, it is better to fail before the upload than after. The Rules may require a vote from a Collection owner to progress, for instance to manually ban unpleasant names.

The Constitution Rules may specify a relative expire time. The Unit may contain an absolute moment of expiration. Whichever comes first will expire the reservation.

Uploaded

Without explicit name reservation, you can upload the Unit. Of course, all Collection Rules are checked whether the Unit name and Content are allowed.

Verified

The Collection may want to verify the payload of the Unit. Does it match the unit type? This might be expensive. Clients which use the content SHOULD not trust the content as well. The server which runs the Collection has hooks which enable you to add your own validator.

Accepted

To reach this state, the verified Unit is up for voting. The voting Rules MAY require confirmation from one or more people from certain Identity groups, the Owners, or Authors. The people which are allowed to vote have access to this Unit.

When Accepted, it may need to wait before it gets Published. Some clients may have access (for instance Collection replicators), but special rules apply.

Published

When the publication date has passed (defaults to 'now'), the normal client access rules get into effect. This is the state you expect the Unit to be in for most of its existence.

Deprecated

On an absolute date, which is pre-specified in the Unit, its use MAY get deprecated. This typically comes with some explanation.

The usual access rules do still apply. The Client may warn the User.

Expired

On an absolute date, which is pre-specified in the Unit, use gets restricted to the owners of the archive. Clients MAY warn users before expiration.

Withdrawn

This Unit MUST not be used anymore. It will contain a reason for this, for instance legal take-down requests. This state is more serious than removal of the Unit: it reflects the instruction to clients to remove its effects immediately.

Blocked

The Unit does not exist anymore, and cannot be recreated until an provided absolute date or relative time span in the Rules.

Owners of a Collection SHOULD be able to push any Unit into Expired, Withdrawn or Blocked state.

Free

The name of the Unit is reusable for a different Unit.


mark@overmeer.net      Web-pages generated on 2023-02-03