67
edits
No edit summary |
|||
Line 280: | Line 280: | ||
=== Catalog microservice === | === Catalog microservice === | ||
This microservice contains the store, ownership and "physical" representation of the games. | |||
==== Content ==== | ==== Content ==== | ||
Line 328: | Line 329: | ||
|If false, only visible to the creator (and moderators) | |If false, only visible to the creator (and moderators) | ||
|false | |false | ||
|- | |||
|privacy* | |||
|enum (public, friends, unlisted, private) | |||
|Only applies to games(?) | |||
Visibility of content on the platform. | |||
|public | |||
|- | |- | ||
|type* | |type* | ||
Line 340: | Line 347: | ||
|content | |content | ||
|- | |- | ||
| | |open_source* | ||
|boolean | |boolean | ||
|Content is open source - can be downloaded / reused | |Content is open source - can be downloaded / reused | ||
|false | |false | ||
|- | |- | ||
Line 363: | Line 365: | ||
|FK UUID | |FK UUID | ||
|User id | |User id | ||
| | |||
|- | |||
|created_at | |||
|datetime | |||
| | |||
| | |||
|- | |||
|updated_at | |||
|datetime | |||
| | |||
| | |||
|} | |||
{| class="wikitable" | |||
|+Content revision | |||
!Key | |||
!Type | |||
!Description | |||
!Default | |||
|- | |||
|id* | |||
|PK int 10 | |||
|Revision ID | |||
| | |||
|- | |||
|content_id* | |||
|FK int 10 | |||
|Content ID | |||
| | |||
|- | |||
|user_id* | |||
|FK UUID | |||
|User ID | |||
| | | | ||
|- | |- | ||
Line 390: | Line 424: | ||
|FK int 10 | |FK int 10 | ||
|Content ID | |Content ID | ||
| | |||
|- | |||
|revision_id* | |||
|FK int 10 | |||
|Revision ID | |||
| | | | ||
|- | |- | ||
Line 451: | Line 490: | ||
|FK int 10 | |FK int 10 | ||
|Content ID | |Content ID | ||
| | |||
|- | |||
|revision_id* | |||
|FK int 10 | |||
|Revision ID | |||
| | | | ||
|- | |- | ||
Line 520: | Line 564: | ||
|updated_at | |updated_at | ||
|datetime | |datetime | ||
| | | | ||
| | | | ||
Line 747: | Line 747: | ||
|- | |- | ||
| colspan="4" |M2M relation with moderator action | | colspan="4" |M2M relation with moderator action | ||
|} | |||
=== Game microservice === | |||
{| class="wikitable" | |||
|+Game | |||
!Key | |||
!Type | |||
!Description | |||
!Default | |||
|- | |||
|id* | |||
|FK int 10 | |||
|Game ID, same as the Content ID | |||
| | |||
|- | |||
|hosted* | |||
|boolean | |||
|If true, only uses self-hosted servers | |||
|false | |||
|- | |||
|max_players* | |||
|int | |||
|Max player count | |||
|16 | |||
|} | |||
{| class="wikitable" | |||
|+Game supports | |||
!Key | |||
!Type | |||
!Description | |||
!Default | |||
|- | |||
|id* | |||
|PK int 10 | |||
|Relation ID | |||
| | |||
|- | |||
|game_id* | |||
|FK int 10 | |||
|Game ID | |||
| | |||
|- | |||
|flag* | |||
|enum | |||
|Support flag: | |||
* character | |||
* individual character features | |||
* chat | |||
| | |||
|- | |||
|enabled* | |||
|boolean | |||
|Flag is enabled | |||
|true | |||
|- | |||
|content_id | |||
|FK int 10 | |||
|Supported content ID (character) | |||
| | |||
|} | |||
{| class="wikitable" | |||
|+Hosted game server | |||
!Key | |||
!Type | |||
!Description | |||
!Default | |||
|- | |||
|id* | |||
|PK int 10 | |||
|Relation ID | |||
| | |||
|- | |||
|token* | |||
|text | |||
|Server token | |||
| | |||
|- | |||
|user_id* | |||
|FK UUID | |||
|Owner user ID | |||
| | |||
|- | |||
|game_id | |||
|FK int 10 | |||
|Currently hosted game ID | |||
| | |||
|- | |||
|socket_host | |||
|text | |||
|Socket host | |||
| | |||
|- | |||
|socket_port | |||
|int | |||
|Socket port | |||
| | |||
|- | |||
|api_host | |||
|text | |||
|API host | |||
| | |||
|- | |||
|api_port | |||
|int | |||
|API port | |||
|443 | |||
|- | |||
|country | |||
|varchar 255 | |||
|Country of server | |||
| | |||
|- | |||
|provision | |||
|boolean | |||
|If true, can be provisioned by session service | |||
|false | |||
|- | |||
|quarantine | |||
|boolean | |||
|If true, cannot be joined to. Set by moderators. | |||
|false | |||
|- | |||
|active | |||
|boolean | |||
|If false, server is not used for new sessions | |||
| | |||
|- | |||
|server_info | |||
|json | |||
|Server-uploaded information about itself | |||
| | |||
|- | |||
|ping | |||
|int | |||
|Last ping in milliseconds | |||
| | |||
|- | |||
|created_at | |||
|datetime | |||
| | |||
| | |||
|- | |||
|updated_at | |||
|datetime | |||
| | |||
| | |||
|- | |||
|pinged_at | |||
|datetime | |||
|Server keepalive ping | |||
| | |||
|- | |||
| colspan="4" |M2M relation with games for multi-game support | |||
|} | |||
==== Provisioned game server ==== | |||
{| class="wikitable" | |||
!Key | |||
!Type | |||
!Description | |||
!Default | |||
|- | |||
|id* | |||
|PK int 10 | |||
|Relation ID | |||
| | |||
|- | |||
|token* | |||
|text | |||
|Server token | |||
| | |||
|- | |||
|game_id | |||
|FK int 10 | |||
|Currently running game ID | |||
| | |||
|- | |||
|socket_host | |||
|text | |||
|Socket host | |||
| | |||
|- | |||
|socket_port | |||
|int | |||
|Socket port | |||
| | |||
|- | |||
|api_host | |||
|text | |||
|API host | |||
| | |||
|- | |||
|api_port | |||
|int | |||
|API port | |||
|443 | |||
|- | |||
|country | |||
|varchar 255 | |||
|Country of server | |||
| | |||
|- | |||
|active | |||
|boolean | |||
|If false, server is not used for new sessions | |||
| | |||
|- | |||
|server_info | |||
|json | |||
|Server-uploaded information about itself | |||
| | |||
|- | |||
|ping | |||
|int | |||
|Last ping in milliseconds | |||
| | |||
|- | |||
|created_by | |||
|FK UUID | |||
|User id | |||
| | |||
|- | |||
|updated_by | |||
|FK UUID | |||
|User id | |||
| | |||
|- | |||
|created_at | |||
|datetime | |||
| | |||
| | |||
|- | |||
|updated_at | |||
|datetime | |||
| | |||
| | |||
|- | |||
|pinged_at | |||
|datetime | |||
|Server keepalive ping | |||
| | |||
|} | |||
=== Session microservice === | |||
==== Session ==== | |||
Created when player presses Play. Server gets token on connection. Server validates token against service and receives character. | |||
{| class="wikitable" | |||
|+ | |||
!Key | |||
!Type | |||
!Description | |||
!Default | |||
|- | |||
|id* | |||
|PK int 10 | |||
|Relation ID | |||
| | |||
|- | |||
|token* | |||
|text | |||
|Session token | |||
| | |||
|- | |||
|user_id* | |||
|FK UUID | |||
|Owner user ID | |||
| | |||
|- | |||
|character_id* | |||
|FK int 10 | |||
|Character ID | |||
| | |||
|- | |||
|game_id* | |||
|FK int 10 | |||
|Played game ID | |||
| | |||
|- | |||
|server_id* | |||
|FK int 10 | |||
|Server ID | |||
| | |||
|- | |||
|server_type* | |||
|enum (host, provision) | |||
|Server type | |||
|provision | |||
|- | |||
|created_at* | |||
|datetime | |||
| | |||
| | |||
|- | |||
|joined_at | |||
|datetime | |||
|Set when the server validates the token | |||
| | |||
|- | |||
|pinged_at | |||
|datetime | |||
|Session keepalive ping | |||
| | |||
|} | |} |