Get desktop application:
View/edit binary Protocol Buffers messages
Calls that Clapshot server makes to Organizer
Initialization calls (in the order they are made)
Name of the organizer module (see OrganizerInfo)
Current (last applied) migration version
List of pending (alternative) migrations.
Database to apply the migration to. Organizer MUST NOT store the connection, but release it after the call.
UUID of the migration to apply (from CheckMigrationResponse)
(message has no fields)
User session events
(message has no fields)
If not set, leave authorization decision to server
e.g. "You are not authorized to view this media file"
e.g. "You are not a member of the project"
Arbitrary data from your own Action handler that is executed on the client
Calls from client when user interacts with the folder UI
Unit / integration tests (not called in production)
Calls that Organizer makes to Clapshot server
Make sure this is (globally) unique, e.g. "com.example.myorganizer", to avoid conflicts
Human-readable description of the organizer plugin
List of any other modules that must be present for this module to work
Multiple calls will add/replace actions
e.g. "rename" -> {label: "Rename", icon: "edit"}
send to client with this session ID
send to all session with this username
send to all sessions with this username, and store in DB
send to all clients watching this media file
send to all clients in this collaboration session
Tell client of session `sid` to open media file `id` in the player
Delete (trash) media file cleanly from both database and filesystem
Database access (note: these may each happen in a separate DB connection / transaction)
All media files in the database. Make sure to set paging.
List of media file ids
Owner of the media file
Paging info for the result. Some queries may not do paging even if requested, so check for presence.
All comments in the database. Make sure to set paging.
List of comment ids
User who posted the comment
MediaFile the comments are attached to
All user messages in the database. Make sure to set paging.
List of message ids
Message recipient
MediaFile the message refers to
Comment the message refers to
Add or replace objects in the database. If an ID is not specified, a new object will be created, otherwise the existing object will be replaced.
These will have IDs, creation timestamps, etc. filled in.
(message has no fields)
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Used as request type in: OrganizerOutbound.client_show_page
Used as response type in: OrganizerInbound.navigate_page
Arbitrary string to identify the page. When this changes, the client will consider it a new page in browser history
shown in browser tab
Used in:
, ,Used in:
Used in:
, , , , , ,Page number (0 = first page)
Number of items per page
Used in:
, ,Used in:
Unique identifier for this migration
Schema version this migration will result in. (must be sortable (e.g. "1.2.3", "2024-01-02_b" etc)
Note: remember to include the plugin itself in the list, if needed
Human-readable description of the migration, for logging
Used in:
Plugin/module whose schema version to check
"Name"'s schema version must be at least this for this migration to be applicable. (not set = any)
--||-- at most --||--
Used in:
e.g. "com.example.someotherorganizer", or "clapshot.server" for the core server
Used in:
, ,Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
, , , , ,