# Concepts

Technologies are easier to understand once you know the key concepts behind their designs.  
[Rookeries](https://rookeries.org/) is no different in this regard.  At its core [Rookeries](https://rookeries.org/)
is a CMS that can manage multiple sites and endpoints.  The key concepts to understand are:

- Content
- Sites
    - Endpoints
- Users
    - Roles
 
## Content

Content is some sort of information, that is part of a site.  There are different kinds of content that can
be managed by a user, and can be linked to other pieces of content.

Content can be in any of these four states:

- Draft
- Scheduled
- Published
- Archived

Content can also deleted completely out of the system.

Content also has the following visibilities:

- Public
    - Viewable to anyone.
- Subscription
    - Viewable to subscribers and above.
- Private
    - Viewable only to the individual writer, editor or admin.

## Site

A site is any collection of content that is related.  A site maybe an instance of a website or a content for 
a mobile app, etc.  Sites can have different kinds of content (articles, images, video) that can be managed by
a user, and linked to an other piece of content.

### Endpoints

An endpoints is what is serving the content to an end-user.  An endpoints represents the presentational technology,
be it a browser, a mobile app, some sort of display or conversational device.

## Users

A users is any actor (human or otherwise) who can change and modify the content related to a site.  Users are not
part of a site, but can be associated with a site depending on their roles.

### Roles

A role defines what a user can or can not do with a site or piece of content.  In the case of 
[Rookeries](https://rookeries.org/) there are five different types of users:

- Admins
- Editors
- Writers
- Readers
- Public

These user roles mirror that of the roles and responsibilities within a media organization.

#### Admins

Admins can control an aspect of any site or any user within [Rookeries](https://rookeries.org/).  They can change
users, their roles or any part of any site.

#### Editors

Editors can control any part of a particular site.  However they can allow or disallow users from content, but not
manage them in any other form.

#### Writers

Writers can create, modify and delete content that they own or that has been assigned to them.  They can not manage 
a site or its users or modify any content that is not managed by them.  They can also read any private content that 
they own.

#### Readers

Readers can access private content on a site via a login.

#### Public

The public is anyone outside of the CMS system, and can access any content that is public and readable by the world.
