JSON Information
vote.data
The vote.data field stores the submitted voting payload for a single vote record.
Type Definition
type VoteData = {
vote_type: string;
proxy: boolean;
proxy_for_user_id: number | null;
vote_response: string[];
};
Field Descriptions
vote_type: Specifies the type of vote represented by this response. Examples include"motion"and"election".proxy: Whether this vote was cast as a proxy vote instance.proxy_for_user_id: Ifproxyis true, this stores the proxied user’s id; otherwisenull.vote_response: Stores the participant’s submitted response as an array.- For a standard motion, this array typically contains a single value.
- For a ranked-choice election, this array stores the ranked selections in order of preference.
- A lower array index indicates a higher preference (e.g., index 0 = first choice, index 1 = second choice).
Example Usage
{
"vote_type": "motion",
"proxy": false,
"proxy_for_user_id": null,
"vote_response": ["choice1", "choice2"]
}
event.data
The event.data field stores event-specific configuration and metadata.
Type Definition
type EventData = {
description: string;
session_code: string;
vote_type: string;
threshold: number;
visibility: {
participants: string;
};
proxy: bool;
vote_options: string[];
};
Field Descriptions
description: A textual description of the event.session_code: A code used for joining or identifying the session.vote_type: Specifies whether the event is a motion or an election.threshold: A floating-point value representing the approval threshold required for the vote. This value in the range [0, 1].visibility.participants: Defines what participants can see during the event. Example values include"hidden_until_release"and"live".proxy: Indicates whether proxy voting is enabled for the event.vote_options: Lists the selectable voting options for the event.
Example Usage
{
"description": "Event description goes here",
"session_code": "code",
"vote_type": "motion",
"threshold": 0.75,
"visibility": {
"participants": "hidden_until_release"
},
"proxy": true,
"vote_options": ["option1", "option2"]
}
Notes
- For now, all users are treated as having the same role.
organization.data
The organization.data field stores organization-level metadata.
Type Definition
type OrganizationData = {
description: string;
};
Field Descriptions
- description: A textual description of the organization.
Example Usage
{
"description": "Organization Description"
}
log.data
The log.data field stores audit log information for system actions. Logging has not been implemented yet, so this section is not in use currently.
Type Definition
type LogData = {
action: string;
target: {
table: string;
id: number;
};
actor:
| {
user_id: number;
role: string;
}
| "system";
event_id: number;
changes: {
before: {};
after: {};
};
};
Field Descriptions
action: A description of the action being logged.target: Identifies the record affected by the action.table: The name of the affected table.id: The primary key of the affected record.actor: Identifies the user responsible for the action.user_id: The ID of the acting user.role: The role of the acting user.event_id: The related event identifier, if applicable.changes: Stores the state transition caused by the action.before: The state before the change.after: The state after the change.
Example Usage
{
"action": "Action Description",
"target": {
"table": "tablename",
"id": 0
},
"actor": {
"user_id": 0,
"role": "Role String"
},
"event_id": 0,
"changes": {
"before": {},
"after": {}
}
}