commit f5e16443d853616d98bfb84388d744dc0af0b490 Author: netkas Date: Sat Aug 31 15:19:36 2024 -0400 Initial Commit diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..6abe4c1 --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1,3 @@ +{ + "alwaysUpdateLinks": true +} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/core-plugins-migration.json b/.obsidian/core-plugins-migration.json new file mode 100644 index 0000000..436f43c --- /dev/null +++ b/.obsidian/core-plugins-migration.json @@ -0,0 +1,30 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "properties": false, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false +} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..9405bfd --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,20 @@ +[ + "file-explorer", + "global-search", + "switcher", + "graph", + "backlink", + "canvas", + "outgoing-link", + "tag-pane", + "page-preview", + "daily-notes", + "templates", + "note-composer", + "command-palette", + "editor-status", + "bookmarks", + "outline", + "word-count", + "file-recovery" +] \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json new file mode 100644 index 0000000..42a46ec --- /dev/null +++ b/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1, + "close": true +} \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json new file mode 100644 index 0000000..ec9aa35 --- /dev/null +++ b/.obsidian/workspace.json @@ -0,0 +1,152 @@ +{ + "main": { + "id": "47bba9cf8c75a601", + "type": "split", + "children": [ + { + "id": "4c66fd1b60c4b183", + "type": "tabs", + "children": [ + { + "id": "18385a150e34cecc", + "type": "leaf", + "state": { + "type": "empty", + "state": {} + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "54b6bf4c1ff29dcf", + "type": "split", + "children": [ + { + "id": "ea41205b8e902b84", + "type": "tabs", + "children": [ + { + "id": "adb4950c2df9ccfd", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical" + } + } + }, + { + "id": "e412b4cee1950c9b", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + } + } + }, + { + "id": "6eba3e5357f9577d", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {} + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "ba7b4dc56dcb29ca", + "type": "split", + "children": [ + { + "id": "a54a1656e887b746", + "type": "tabs", + "children": [ + { + "id": "160a787f41e79761", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "4c28b8702d6daed7", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "450ad11f7281639e", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true + } + } + }, + { + "id": "c3adf48fb693425f", + "type": "leaf", + "state": { + "type": "outline", + "state": {} + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false + } + }, + "active": "18385a150e34cecc", + "lastOpenFiles": [ + "Object Structures/Entity/User.md", + "Object Structures/Entity.md", + "Object Structures/Entity", + "Limits/UUID Standard.md", + "Limits/Untitled.md", + "Limits", + "Welcome.md", + "Object Structures" + ] +} \ No newline at end of file diff --git a/Limits/UUID Standard.md b/Limits/UUID Standard.md new file mode 100644 index 0000000..27147c8 --- /dev/null +++ b/Limits/UUID Standard.md @@ -0,0 +1,9 @@ +The UUID Standard used in Socialbox will almost always be version 4 (Random), see below + +--- + +A version 4 UUID is randomly generated. As in other UUIDs, 4 bits are used to indicate version 4, and 2 or 3 bits to indicate the variant (102 or 1102 for variants 1 and 2 respectively). Thus, for variant 1 (that is, most UUIDs) a random version 4 UUID will have 6 predetermined variant and version bits, leaving 122 bits for the randomly generated part, for a total of 2122, or 5.3×1036 (5.3 [undecillion](https://en.wikipedia.org/wiki/Names_of_large_numbers "Names of large numbers")) possible version-4 variant-1 UUIDs. There are half as many possible version 4, variant 2 UUIDs (legacy GUIDs) because there is one less random bit available, 3 bits being consumed for the variant. + +Per [RFC](https://en.wikipedia.org/wiki/RFC_(identifier) "RFC (identifier)") [9562](https://datatracker.ietf.org/doc/html/rfc9562), the seventh octet's most significant 4 bits indicate which version the UUID adheres to. This means that the first hexadecimal digit in the third group always starts with a `4` in UUIDv4s. Visually, this looks like this `xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx`, where `M` is the UUID version field. The upper two or three bits of digit `N` encode the variant. For example, a random UUID version 4, variant 2 could be `8D8AC610-566D-4EF0-9C22-186B2A5ED793`.[[19]](https://en.wikipedia.org/wiki/Universally_unique_identifier#cite_note-19) + +Source: [Universally unique identifier - Wikipedia](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) \ No newline at end of file diff --git a/Object Structures/Entity.md b/Object Structures/Entity.md new file mode 100644 index 0000000..e1e796d --- /dev/null +++ b/Object Structures/Entity.md @@ -0,0 +1,12 @@ +The Entity object can be used to represent a entity such as a User, Bot or anything to mimic a sender or receiver. + +--- + + - `uuid`: (**String**) *The Unique Universal Identifier of the entity, see [[UUID Standard]] for how the UUID should be structured* + - `type`: (**Enum**) *The Enum value of the entity type* + - `USER`: *This represents a user account on the instance* + - `BOT`: *This represents a bot account managed by a user on the instance* + - `CHANNEL`: *This represents a channel that the user can subscribe and or post as.* +- `username`: (**String**): *This represents the unique username under the domain* +- `domain`: (**String**): *This represents the domain the entity is under* + - `display_name`: (**String**) *The display name of the entity* \ No newline at end of file diff --git a/Object Structures/Entity/User.md b/Object Structures/Entity/User.md new file mode 100644 index 0000000..5231a5c --- /dev/null +++ b/Object Structures/Entity/User.md @@ -0,0 +1,15 @@ +The user object is used for storing basic information about the user, authentication details are not stored on this table. Instead it would be a foreign reference key for the available authentication types that this user can use. + +This object extends [[Entity]] to represent an entity. + +---- + +## Structure + - `uuid` (**String**): *The Unique Universal Identifier for the user object* #unique #primary_key #indexed This extends [[Entity]] + - `type` (Enum): The entity type, for users it's always `USER`. This extends [[Entity]] + - `username` (**String**): *The Unique username associated with the user* #unique #paired_index (with `domain`) #indexed. This extends [[Entity]] + - `domain` (**String**): *The domain to which this user is associated with, by default `LOCAL` for users created under the server's local domain.* (==This server manages this user==) #paired_index #indexed This extends [[Entity]] + `username` and `domain` are paired unique indexes, which means the username `John` may exist under `LOCAL` but uniquely, no other user under `LOCAL` can claim this username; but someone else from `example.com` may claim the username `John` so that `john@localhost` and `john@example.com` are always unique pairs per server instance + - `display_name`: (**String**) *The display name for the user, non-unique. + - `anonymous`: (Boolean) Indicates if this user account is temporary & anonymous + - `created`: (Timestamp) *The Timestamp for when this account was created* \ No newline at end of file