All Projects → gggeek → ezcontentstaging

gggeek / ezcontentstaging

Licence: GPL-2.0 license
eZPublish Legacy extension allowing content synchronization between different installations

Programming Languages

PHP
23972 projects - #3 most used programming language
Smarty
1635 projects

Projects that are alternatives of or similar to ezcontentstaging

Redissyncer Server
RedisSyncer是一个多任务的redis数据同步工具,可灵活的满足Redis间的数据同步、迁移需求; redissyncer is a redis synchronization tool, used in redis single instance and cluster synchronization
Stars: ✭ 216 (+1170.59%)
Mutual labels:  sync
To Do
一个无后端待办事项应用,数据用 LeanCloud 进行同步。
Stars: ✭ 238 (+1300%)
Mutual labels:  sync
git2gus
A Github application to keep issues in sync with Agile Accelerator
Stars: ✭ 27 (+58.82%)
Mutual labels:  sync
S3sync
Really fast sync tool for S3
Stars: ✭ 224 (+1217.65%)
Mutual labels:  sync
Go Fastdfs
go-fastdfs 是一个简单的分布式文件系统(私有云存储),具有无中心、高性能,高可靠,免维护等优点,支持断点续传,分块上传,小文件合并,自动同步,自动修复。Go-fastdfs is a simple distributed file system (private cloud storage), with no center, high performance, high reliability, maintenance free and other advantages, support breakpoint continuation, block upload, small file merge, automatic synchronization, automatic r…
Stars: ✭ 2,923 (+17094.12%)
Mutual labels:  sync
React Scroll Sync
Synced scroll position across multiple scrollable elements
Stars: ✭ 252 (+1382.35%)
Mutual labels:  sync
Deck
decK: Configuration management and drift detection for Kong
Stars: ✭ 211 (+1141.18%)
Mutual labels:  sync
CryptoSync
Cross-platform end-to-end encryption cloud sync client ☁️ 🔒
Stars: ✭ 38 (+123.53%)
Mutual labels:  sync
Realmcontent
Light Realm-powered content management system
Stars: ✭ 237 (+1294.12%)
Mutual labels:  sync
ChronoChat
A simple but interesting demo to visualize how ChronoSync library works
Stars: ✭ 16 (-5.88%)
Mutual labels:  sync
Sync
JSON to Core Data and back. Swift Core Data Sync.
Stars: ✭ 2,538 (+14829.41%)
Mutual labels:  sync
Realm Cocoa
Realm is a mobile database: a replacement for Core Data & SQLite
Stars: ✭ 14,778 (+86829.41%)
Mutual labels:  sync
React Native Storage
local storage wrapper for both react-native and browser. Support size controlling, auto expiring, remote data auto syncing and getting batch data in one query.
Stars: ✭ 2,822 (+16500%)
Mutual labels:  sync
Vuex Easy Firestore
Easy coupling of firestore and a vuex module. 2-way sync with 0 boilerplate!
Stars: ✭ 224 (+1217.65%)
Mutual labels:  sync
Notion-GCal-Sync
A Python script to automate the syncing of tasks between Google Calendar and the all-in-one productivity workspace, Notion. It utilizes API and is customizable for your own needs. Free to use.
Stars: ✭ 120 (+605.88%)
Mutual labels:  sync
Crdt Playground
Stars: ✭ 215 (+1164.71%)
Mutual labels:  sync
Plex Sync
🎬 Command line utility for synchronizing Plex Media Server watched / seen status between multiple servers
Stars: ✭ 239 (+1305.88%)
Mutual labels:  sync
sicksync
Don’t accept the available as the preferable. Go the extra mile with extra speed.
Stars: ✭ 67 (+294.12%)
Mutual labels:  sync
sync-pkg
Minimalist CLI to sync only basic properties from package.json to bower.json
Stars: ✭ 15 (-11.76%)
Mutual labels:  sync
client-side-databases
An implementation of the exact same app in Firestore, AWS Datastore, PouchDB, RxDB and WatermelonDB
Stars: ✭ 787 (+4529.41%)
Mutual labels:  sync

eZ Content Staging Extension

The goal of the extension is to allow content synchronization between different eZ Publish installations.

The general architecture is the following:

Feeds

. on the source server, "synchronization feeds" are defined . every feed is used to relay content to one target server . for every feed, a set of "root nodes" has to be defined . every content that is a child of one of the feed root nodes will be synchronized to the target server . the same content can be part of many feeds that synchronize to different target servers

Content editing

. the extension aims to synchronize content with a 100% accuracy, including e.g. objects states, sections, multiple locations etc... . whenever a content is edited on the source server, the changes are recorded locally in the database (not sent immediately) . editors and administrators can decide which contents to synchronize, via either the website toolbar (frontend), a dashboard panel or a dedicated page in the administration interface

Communication between the servers

. the communication between the source and target servers happens via REST calls (with a small divergence from the standard http protocol in usage of custom verbs) . the extension needs to be installed on both source and target servers

Installation

Read the INSTALL file for both requirements and instructions

FAQ

. q: can a feed be defined on a subtree of already existing content? a: not yet. It is recommended to have no content for either source or target feed sources when creating the feed . q: can content sync happen immediately without intervention of the editor? a: not yet . q: can content sync happen via a cronjob? a: yes . q: are all datatypes supported? a: the extension support all datatypes from eZ Publish, plus datatypes that support fully toString(), fromString() calls and do not rely on object_id/node_id or other database data . q: are custom tags for rich text supported? a: all tags that do not rely on object_id/node_id or other database data should be fine . q: is the REST protocol used for communication between the two servers documented? a: yes. It is in fact a "preview" version of the protocol that will be the official next version of the ezrest api. Documentation is provided: - in the doc/ folder within the extension, in the specs.ods file - automatically-generated via the REST url contentstaging/v1/api/versions . q: how does the extension cope with synchronization of "dictionary" data, such as sections, object states, content class definitin? a: so far, this is left to manual synchronization . q: can I use the REST API in this extension independently of a staging context, and have AJAX clients use it to edit content on a single eZ Publish server? a: yes. This has not been extensively tested, but it should work. The main hurdle is setting up teh REST layer to use the current eZ session cookie for auth purposes; to this end you should set in rest.ini AuthenticationStyle=ezpRestSessionAuthStyle. NB: doing so means that the "anonymous user" can access all methods available via the REST api - take care if there are some such methods that do not enforce proper policy checking . q: what is the difference between the version of this extensions on projects.ez.no (github.com/gggeek/ezcontentstaging) and the official version from eZ Systems (github.com/ezsystems/ezcontentstaging)? a: the "community version" extension was the first to be developed. It it still being maintained, and it strives to be a "beta" version where features are implemented before being imported in the official version. The REST protocol in use is the same, so you should be able to interoperate between the two extensions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].