workflow initiative

38
Workflow Initiative https://www.drupal.org/node/ 2721129 The session formally known as “Drupal is a CMS, So how can we better manage content?”

Upload: timmillwood

Post on 07-Feb-2017

1.344 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Workflow Initiative

Workflow Initiative

https://www.drupal.org/node/2721129

The session formally known as “Drupal is a CMS, So how can we better manage content?”

Page 2: Workflow Initiative

TimMillwoodd.o: timmillwood

Page 3: Workflow Initiative

DickOlssond.o: dixon_

Page 4: Workflow Initiative

AndreiJechiud.o: jeqq

Page 5: Workflow Initiative
Page 6: Workflow Initiative
Page 7: Workflow Initiative

Multiversion

Page 8: Workflow Initiative

Replication

Page 9: Workflow Initiative

Workspace

Page 10: Workflow Initiative

RELAXed Web Services

Page 11: Workflow Initiative

Deploy

Page 12: Workflow Initiative

Revisions enabled by default

https://www.drupal.org/node/2490136

We have revisions in core for Nodes and Block Content, but we don’t use them by default.

Phase 1

Needs

Review

Page 13: Workflow Initiative

All Content entity baseFieldDefinitions should inherit from

parentshttps://www.drupal.org/node/2707255

Most fields are manually duplicated, to reuse code and make things more flexible we should

inherit fields.Phase 1

DONE

Page 14: Workflow Initiative

NodeInterface should implement

RevisionLogInterface https://www.drupal.org/node/2705433

8.1.0 introduced RevisionLogInterface. It’d be great to get revisionable entity types using it.

Phase 1

DONE

Page 15: Workflow Initiative

BlockContent should have a revision_user and revision_created

field and implement RevisionLogInterface

https://www.drupal.org/node/2716081

BlockContent can’t use RevisionLogInterface until it gets revision_user and revision_created

fields.Phase 1

Needs

Review

Page 16: Workflow Initiative

Migrate entities between entity type

schemashttps://www.drupal.org/node/2721313

We can’t change any entity schemas until we have an upgrade path for all content within

those entities.Phase 1

Page 17: Workflow Initiative

Make all content entities revisionable

https://www.drupal.org/node/2705389

Update the following entities to extend RevisionableContentEntityBase

and have a revision id entity key:

Comment, Feed, File, Item, MenuLinkContent, Message, Shortcut, Term, User

Phase 1

Page 18: Workflow Initiative

Revision UUID and/or hash

http://www.drupal.org/node/1812202

Using a revision hash has the most advantages, but having both would also be ok.

Phase 2

Page 19: Workflow Initiative

Parent revisions

Each revision can have one or more parents. This is so we can know where it stemmed

from.Phase 2

Page 20: Workflow Initiative

Deleted flag

Don’t delete any entities, just create a new revision marking them as deleted.

Phase 3

Page 21: Workflow Initiative

Purging revisions

Now that entities aren’t deleted we need a way to purge whole entities and individual

revisions.Phase 3

Page 22: Workflow Initiative

Trash

Provide a UI for restoring and purging deleted entities.

Phase 4

Page 23: Workflow Initiative

Moderation API

Underlying API to moderate revisions of content entities.

Phase 5

Page 24: Workflow Initiative

Workspace API

All content entities, except the user entity type, belong to a workspace.

Think of workspaces like branches in git.Phase 5

Page 25: Workflow Initiative

UUID Index

https://www.drupal.org/node/2690747

An index of UUIDs mapped to related entity information.

Phase 6

Page 26: Workflow Initiative

Revision UUID / hash Index

An index of revision UUIDs / hashes mapped to related revision information.

Phase 6

Page 27: Workflow Initiative

Sequence Index

Each entity update will increment a sequence ID. Here we map this to the entity and revision

information of the update.Phase 6

Page 28: Workflow Initiative

Replication services

Changes – Fetch changes since a given sequence ID.

RevisionsDiff – Compare what revisions are missing between workspaces.

Phase 7

Page 29: Workflow Initiative

Replication API

Replicate content between two workspaces.Phase 7

Page 30: Workflow Initiative

Conflict management API

Now entities can exist in multiple workspace we need a way to resolve conflicts between them.

Phase 7

Page 31: Workflow Initiative

Experimental UI

Most of the basic APIs will now be in place so we can implement an initial UI for it all.

Phase 7

Page 32: Workflow Initiative

Conflict management UI

This is a complex step and feature a lot of UX work.

Phase 8

Page 33: Workflow Initiative

Workspace UI

Create, manage, and switch between workspaces.Phase 8

Page 34: Workflow Initiative

Revision moderation module

This will be a new core module using the moderation API to moderation individual entities

within a workspace.Phase 8

Page 35: Workflow Initiative

Workspace moderation module

This will be a new core module using the moderation API to moderation a workspace as a

whole.Phase 8

Page 36: Workflow Initiative

Cross site content staging

REST API based on CouchDB for cross site content staging.

Phase X

Page 37: Workflow Initiative

Autosave

Automatically save entities while editing.Could use the REST API.

Phase XI

Page 38: Workflow Initiative

So How Was It?Evaluate this session - ht tps: / /events.drupal.org/node/9192

Thanks!