From 69fa70d526efdb1c324ce5b675292c122b7c4746 Mon Sep 17 00:00:00 2001 From: adz Date: Wed, 17 Jan 2024 21:48:47 +0100 Subject: [PATCH] Fix links --- website/docs/faq.md | 4 ++-- website/docs/learn/index.md | 2 +- website/docs/learn/networks.md | 4 ++-- .../specifications/aquadoggo/APIs/overview.md | 18 +++++++++--------- .../aquadoggo/APIs/publishing.md | 18 +++++++++--------- .../specifications/aquadoggo/APIs/queries.md | 18 +++++++++--------- .../aquadoggo/data-types/bamboo.md | 6 +++--- .../aquadoggo/data-types/blobs.md | 6 +++--- .../aquadoggo/data-types/document-views.md | 4 ++-- .../aquadoggo/data-types/documents.md | 2 +- .../aquadoggo/data-types/key-pairs.md | 4 ++-- .../aquadoggo/data-types/operations.md | 8 ++++---- .../aquadoggo/data-types/schemas.md | 6 +++--- .../aquadoggo/documents-and-schema.md | 14 +++++++------- .../docs/specifications/aquadoggo/glossary.md | 18 +++++++++--------- .../specifications/aquadoggo/key-concepts.md | 16 ++++++++-------- .../aquadoggo/networking/clients-nodes.md | 8 ++++---- .../aquadoggo/networking/networking.md | 2 +- .../specifications/aquadoggo/replication.md | 8 ++++---- website/docs/tutorials/send-to-node.md | 16 ++++++++-------- 20 files changed, 91 insertions(+), 91 deletions(-) diff --git a/website/docs/faq.md b/website/docs/faq.md index 4fcb20b50..904dc0991 100644 --- a/website/docs/faq.md +++ b/website/docs/faq.md @@ -28,7 +28,7 @@ p2panda has been designed with browser-friendliness in mind as it is still very ## Does p2panda encrypt data? -By default all published data is not encrypted. p2panda offers [Secret Group](/specification/encryption) to allow group encryption between multiple peers. For this p2panda uses [Messaging Layer Security](https://messaginglayersecurity.rocks/) (MLS) under the hood. While technically it is already possible to write encrypted applications (we will provide an example soon), for the upcoming funding period we are working on a high-level API which will make using encryption more seamless for developers. +By default all published data is not encrypted. p2panda plans a decentralised variant of [Messaging Layer Security](https://messaginglayersecurity.rocks/) (MLS) under the hood for strong encryption. For the upcoming funding period we are working on a dMLS client API which will make using encryption seamless for developers. ## Does p2panda run on smartphones? @@ -44,7 +44,7 @@ If you're looking for expressing relations between different sorts of data, simi ## Can nodes replicate data with each other? -Yes! We have a [replication protocol](/specification/replication) which is implemented in [`aquadoggo`](https://github.com/p2panda/aquadoggo/). The nodes will automatically discover and sync with each other. +Yes! We have a [replication protocol](/specifications/aquadoggo/replication) which is implemented in [`aquadoggo`](https://github.com/p2panda/aquadoggo/). The nodes will automatically discover and sync with each other. ## Can nodes already find each other on the network? diff --git a/website/docs/learn/index.md b/website/docs/learn/index.md index 19dc59900..1efbc8cd5 100644 --- a/website/docs/learn/index.md +++ b/website/docs/learn/index.md @@ -4,7 +4,7 @@ title: Overview import ImageFrame from '@site/src/components/ImageFrame'; -In this _Learn_ section we want to introduce you to the concepts around p2panda. It will not be as _formal_ as the [Specification](/specification) but also more _theoretical_ than the [Tutorials](/tutorials). With all of the other resources together you should get a good overview of what p2panda is about. +In this _Learn_ section we want to introduce you to the concepts around p2panda. It will not be as _formal_ as the [Specification](/specifications) but also more _theoretical_ than the [Tutorials](/tutorials). With all of the other resources together you should get a good overview of what p2panda is about. OrderBy { ``` [aquadoggo]: https://github.com/p2panda/aquadoggo -[bamboo]: /specification/data-types/bamboo -[connection-specification]: https://relay.dev/graphql/connections.htm -[documents]: /specification/data-types/documents +[bamboo]: /specifications/aquadoggo/data-types/bamboo +[connection-specifications/aquadoggo]: https://relay.dev/graphql/connections.htm +[documents]: /specifications/aquadoggo/data-types/documents [graphql]: https://graphql.org/ -[latest-document-view]: /specification/data-types/documents#the-latest-document-view -[nodes]: /specification/networking/clients-nodes -[operations]: /specification/data-types/operations -[pagination-specification]: https://graphql.org/learn/pagination/#pagination-and-edges -[reduction]: /specification/data-types/documents#reduction -[self-referential-relation]: /specification/data-types/schemas#relation-fields +[latest-document-view]: /specifications/aquadoggo/data-types/documents +[nodes]: /specifications/aquadoggo/networking/clients-nodes +[operations]: /specifications/aquadoggo/data-types/operations +[pagination-specifications/aquadoggo]: https://graphql.org/learn/pagination/#pagination-and-edges +[reduction]: /specifications/aquadoggo/data-types/documents +[self-referential-relation]: /specifications/aquadoggo/data-types/schemas#relation-fields diff --git a/website/docs/specifications/aquadoggo/data-types/bamboo.md b/website/docs/specifications/aquadoggo/data-types/bamboo.md index a12353366..0e86f2d74 100644 --- a/website/docs/specifications/aquadoggo/data-types/bamboo.md +++ b/website/docs/specifications/aquadoggo/data-types/bamboo.md @@ -117,8 +117,8 @@ Bamboo log ids for any public key MUST increment monotonically by one. Currently p2panda doesn't reserve a special use for the end of log flag. This may change in future versions. [bamboo_spec]: https://github.com/AljoschaMeyer/bamboo -[documents]: /specification/data-types/documents -[key_pairs]: /specification/data-types/key-pairs -[operations]: /specification/data-types/operations +[documents]: /specifications/aquadoggo/data-types/documents +[key_pairs]: /specifications/aquadoggo/data-types/key-pairs +[operations]: /specifications/aquadoggo/data-types/operations [yamf]: https://github.com/AljoschaMeyer/yamf-hash [yasmf]: https://github.com/bamboo-rs/yasmf-hash-spec diff --git a/website/docs/specifications/aquadoggo/data-types/blobs.md b/website/docs/specifications/aquadoggo/data-types/blobs.md index 7691ea23a..6e7a66e11 100644 --- a/website/docs/specifications/aquadoggo/data-types/blobs.md +++ b/website/docs/specifications/aquadoggo/data-types/blobs.md @@ -59,6 +59,6 @@ We designed blobs to be as generic as possible, giving developers the option to - Nodes can choose to ignore blobs when they exceed certain minimum or maximum length requirements or have unsupported mime types - Nodes can choose to only replicate blob pieces when there is at least one relation to the blob itself from other documents -[schemas]: /specification/data-types/schemas -[documents]: /specification/data-types/documents -[blob-http]: /specification/APIs/blob-http +[schemas]: /specifications/aquadoggo/data-types/schemas +[documents]: /specifications/aquadoggo/data-types/documents +[blob-http]: /specifications/aquadoggo/APIs/blob-http diff --git a/website/docs/specifications/aquadoggo/data-types/document-views.md b/website/docs/specifications/aquadoggo/data-types/document-views.md index f2a818914..620729052 100644 --- a/website/docs/specifications/aquadoggo/data-types/document-views.md +++ b/website/docs/specifications/aquadoggo/data-types/document-views.md @@ -41,5 +41,5 @@ All operations referenced in a document view id must originate from the same doc - It is defined as that document view which incorporates all valid operations that are known to the node and part of the document - As two nodes in the p2panda network may not share knowledge of the same operations, the latest document view may differ from node to node -[reconciliation]: /specification/data-types/documents#reconciliation -[reduction]: /specification/data-types/documents#reduction +[reconciliation]: /specifications/aquadoggo/data-types/documents +[reduction]: /specifications/aquadoggo/data-types/documents diff --git a/website/docs/specifications/aquadoggo/data-types/documents.md b/website/docs/specifications/aquadoggo/data-types/documents.md index 8a46953b5..a8645e515 100644 --- a/website/docs/specifications/aquadoggo/data-types/documents.md +++ b/website/docs/specifications/aquadoggo/data-types/documents.md @@ -117,4 +117,4 @@ only the id of the DELETE operation and a document view SHOULD NOT be produced. 4. Stop reduction if there is no next known operation in the document 5. Continue with step 2. otherwise -[operations]: /specification/data-types/operations +[operations]: /specifications/aquadoggo/data-types/operations diff --git a/website/docs/specifications/aquadoggo/data-types/key-pairs.md b/website/docs/specifications/aquadoggo/data-types/key-pairs.md index 875ededb2..b626a9e9e 100644 --- a/website/docs/specifications/aquadoggo/data-types/key-pairs.md +++ b/website/docs/specifications/aquadoggo/data-types/key-pairs.md @@ -51,5 +51,5 @@ p2panda clients SHOULD NOT require the transmission of a private key outside a u - Transmitting a private key outside of its usage context might be attractive e.g. to migrate a software installation but it is considered a security risk, can lead to forks and hard to get right in terms of user experience. - To migrate data clients should rather make use of p2panda [Key Groups][key_groups], by transferring the permissions to a new key pair instead of migrating the old key pair itself -[bamboo-entries]: /specification/data-types/bamboo#entries -[key_groups]: /specification/authorisation +[bamboo-entries]: /specifications/aquadoggo/data-types/bamboo#entries +[key_groups]: /specifications/aquadoggo/authorisation diff --git a/website/docs/specifications/aquadoggo/data-types/operations.md b/website/docs/specifications/aquadoggo/data-types/operations.md index 26894a472..74de64f8a 100644 --- a/website/docs/specifications/aquadoggo/data-types/operations.md +++ b/website/docs/specifications/aquadoggo/data-types/operations.md @@ -191,8 +191,8 @@ Nodes MUST delete all operations of a document once it has been deleted. ::: [cbor]: https://cbor.io/ -[document]: /specification/data-types/documents -[key-pairs]: /specification/data-types/key-pairs -[reduce]: /specification/data-types/documents#reduction -[schema]: /specification/data-types/schemas +[document]: /specifications/aquadoggo/data-types/documents +[key-pairs]: /specifications/aquadoggo/data-types/key-pairs +[reduce]: /specifications/aquadoggo/data-types/documents +[schema]: /specifications/aquadoggo/data-types/schemas [snake_case]: https://en.wikipedia.org/wiki/Snake_case diff --git a/website/docs/specifications/aquadoggo/data-types/schemas.md b/website/docs/specifications/aquadoggo/data-types/schemas.md index f7882e741..340bbb86d 100644 --- a/website/docs/specifications/aquadoggo/data-types/schemas.md +++ b/website/docs/specifications/aquadoggo/data-types/schemas.md @@ -190,6 +190,6 @@ All _relation_ field types need to specify a schema ::: -[queries]: /specification/APIs/queries -[reconciliation]: /specification/data-types/documents#reconciliation -[reduction]: /specification/data-types/documents#reduction +[queries]: /specifications/aquadoggo/APIs/queries +[reconciliation]: /specifications/aquadoggo/data-types/documents +[reduction]: /specifications/aquadoggo/data-types/documents diff --git a/website/docs/specifications/aquadoggo/documents-and-schema.md b/website/docs/specifications/aquadoggo/documents-and-schema.md index 5aaf71417..45f4261f0 100644 --- a/website/docs/specifications/aquadoggo/documents-and-schema.md +++ b/website/docs/specifications/aquadoggo/documents-and-schema.md @@ -17,10 +17,10 @@ Documents can be assigned to an identity, giving them a concept of [permissions] Some schema are specified as part of the p2panda protocol, these are called [system schema][system-schema], others are dynamically published by application developers and distributed across the network, these are called [application schema][application-schema] -[documents]: /specification/data-types/documents -[schemas]: /specification/data-types/schemas -[application-schema]: /specification/data-types/schemas#system-and-application-schemas -[system-schema]: /specification/data-types/schemas#system-schemas -[nodes]: /specification/networking/clients-nodes -[encryption]: /specification/encryption -[authorisation]: /specification/authorisation +[documents]: /specifications/aquadoggo/data-types/documents +[schemas]: /specifications/aquadoggo/data-types/schemas +[application-schema]: /specifications/aquadoggo/data-types/schemas#system-and-application-schemas +[system-schema]: /specifications/aquadoggo/data-types/schemas#system-schemas +[nodes]: /specifications/aquadoggo/networking/clients-nodes +[encryption]: /specifications/aquadoggo/encryption +[authorisation]: /specifications/aquadoggo/authorisation diff --git a/website/docs/specifications/aquadoggo/glossary.md b/website/docs/specifications/aquadoggo/glossary.md index 622f02d7d..6e534a212 100644 --- a/website/docs/specifications/aquadoggo/glossary.md +++ b/website/docs/specifications/aquadoggo/glossary.md @@ -16,15 +16,15 @@ title: Glossary * **[Operation][operations]**: p2panda data type which describes data mutations. Collections of linked operations form causal mutation graphs which are the foundation for p2panda [Documents][documents]. * **[Yasmf][yasmf]**: A multiformat hash used in p2panda. -[api]: /specification/APIs/overview -[bamboo-author]: /specification/data-types/bamboo#author -[bamboo]: /specification/data-types/bamboo +[api]: /specifications/aquadoggo/APIs/overview +[bamboo-author]: /specifications/aquadoggo/data-types/bamboo +[bamboo]: /specifications/aquadoggo/data-types/bamboo [bamboo_spec]: https://github.com/bamboo-rs/bamboo-ed25519-yasmf -[cbor]: /specification/encoding-data#cbor -[documents]: /specification/data-types/documents -[encoding]: /specification/data-types/bamboo#encoding -[hash]: /specification/data-types/bamboo#hashing -[key_pairs]: /specification/data-types/key-pairs -[operations]: /specification/data-types/operations +[cbor]: /specifications/aquadoggo/encoding-data#cbor +[documents]: /specifications/aquadoggo/data-types/documents +[encoding]: /specifications/aquadoggo/data-types/bamboo#encoding +[hash]: /specifications/aquadoggo/data-types/bamboo#hashing +[key_pairs]: /specifications/aquadoggo/data-types/key-pairs +[operations]: /specifications/aquadoggo/data-types/operations [yamf]: https://github.com/AljoschaMeyer/yamf-hash [yasmf]: https://github.com/bamboo-rs/yasmf-hash diff --git a/website/docs/specifications/aquadoggo/key-concepts.md b/website/docs/specifications/aquadoggo/key-concepts.md index 8f2b12973..cf4275e14 100644 --- a/website/docs/specifications/aquadoggo/key-concepts.md +++ b/website/docs/specifications/aquadoggo/key-concepts.md @@ -23,11 +23,11 @@ Documents can be assigned to an identity, giving them a concept of [permissions] Some schema are specified as part of the p2panda protocol, these are called [system schema][system-schema], others are dynamically published by application developers and distributed across the network, these are called [application schema][application-schema] -[application-schema]: /specification/data-types/schemas#system-and-application-schemas -[authorisation]: /specification/authorisation -[documents]: /specification/data-types/documents -[encryption]: /specification/encryption -[keypairs]: /specification/data-types/key-pairs -[nodes]: /specification/networking/clients-nodes -[schemas]: /specification/data-types/schemas -[system-schema]: /specification/data-types/schemas#system-schemas +[application-schema]: /specifications/aquadoggo/data-types/schemas#system-and-application-schemas +[authorisation]: /specifications/aquadoggo/authorisation +[documents]: /specifications/aquadoggo/data-types/documents +[encryption]: /specifications/aquadoggo/encryption +[keypairs]: /specifications/aquadoggo/data-types/key-pairs +[nodes]: /specifications/aquadoggo/networking/clients-nodes +[schemas]: /specifications/aquadoggo/data-types/schemas +[system-schema]: /specifications/aquadoggo/data-types/schemas#system-schemas diff --git a/website/docs/specifications/aquadoggo/networking/clients-nodes.md b/website/docs/specifications/aquadoggo/networking/clients-nodes.md index efb55eb5f..fcf13cef7 100644 --- a/website/docs/specifications/aquadoggo/networking/clients-nodes.md +++ b/website/docs/specifications/aquadoggo/networking/clients-nodes.md @@ -71,9 +71,9 @@ Although NO1 and NO2 must be fulfilled by a node for all entries arriving via th [aquadoggo]: https://github.com/p2panda/aquadoggo [beep_boop]: https://github.com/p2panda/beep-boop -[key_groups]: /specification/authorisation +[key_groups]: /specifications/aquadoggo/authorisation [p2panda]: https://github.com/p2panda/p2panda -[publishing]: /specification/APIs/publishing -[queries]: /specification/APIs/queries -[replication]: /specification/APIs/replication +[publishing]: /specifications/aquadoggo/APIs/publishing +[queries]: /specifications/aquadoggo/APIs/queries +[replication]: /specifications/aquadoggo/APIs/replication [tauri]: https://tauri.studio/ diff --git a/website/docs/specifications/aquadoggo/networking/networking.md b/website/docs/specifications/aquadoggo/networking/networking.md index fe88bc6bc..3473d02b8 100644 --- a/website/docs/specifications/aquadoggo/networking/networking.md +++ b/website/docs/specifications/aquadoggo/networking/networking.md @@ -206,4 +206,4 @@ around an external onion service layer. [QUIC]: https://en.wikipedia.org/wiki/QUIC [`aquadoggo`]: https://github.com/p2panda/aquadoggo/ [libp2p]: https://libp2p.io -[replication protocol]: /specification/replication +[replication protocol]: /specifications/aquadoggo/replication diff --git a/website/docs/specifications/aquadoggo/replication.md b/website/docs/specifications/aquadoggo/replication.md index 00a6cbcb3..fd6eae61d 100644 --- a/website/docs/specifications/aquadoggo/replication.md +++ b/website/docs/specifications/aquadoggo/replication.md @@ -256,7 +256,7 @@ SyncDone live_mode=false ] ``` -[bamboo]: /specification/data-types/bamboo -[documents]: /specification/data-types/documents -[networking]: /specification/networking -[schemas]: /specification/data-types/schemas +[bamboo]: /specifications/aquadoggo/data-types/bamboo +[documents]: /specifications/aquadoggo/data-types/documents +[networking]: /specifications/aquadoggo/networking +[schemas]: /specifications/aquadoggo/data-types/schemas diff --git a/website/docs/tutorials/send-to-node.md b/website/docs/tutorials/send-to-node.md index 8bf15208c..a61b02f39 100644 --- a/website/docs/tutorials/send-to-node.md +++ b/website/docs/tutorials/send-to-node.md @@ -55,7 +55,7 @@ A fun exercise could be to try implement `send-to-node` in JavaScript with the [ :::note Why JSON? -p2panda does not use JSON internally, even though `send-to-node` works with `.json` files. It is just the choosen format for this program to create operations. Internally all operations are actually encoded as [CBOR](/specification/data-types/operations/#encoding-format). +p2panda does not use JSON internally, even though `send-to-node` works with `.json` files. It is just the choosen format for this program to create operations. Internally all operations are actually encoded as [CBOR](/specifications/aquadoggo/data-types/operations). ::: @@ -141,11 +141,11 @@ What does all of this mean? We look at an array with four fields inside. Let's g **Version** -The first field with the value `1` indicates the version we're using to write this operation. For now it will probably stay `1` for a longer time until there are any important updates to the p2panda [specification](/specification). +The first field with the value `1` indicates the version we're using to write this operation. For now it will probably stay `1` for a longer time until there are any important updates to the p2panda [specification](/specifications). **Action** -The second field with the value `0` indicates the _action_ of this operation. `0` stands for CREATE, `1` would stand for UPDATE and `2` for DELETE. You can read more about operations in the [learn](/learn/operations) section or the [specification](/specification/data-types/operations) but for now it is enough to understand that with these three actions we can create, update or delete _documents_. +The second field with the value `0` indicates the _action_ of this operation. `0` stands for CREATE, `1` would stand for UPDATE and `2` for DELETE. You can read more about operations in the [learn](/learn/operations) section or the [specification](/specifications/aquadoggo/data-types/operations) but for now it is enough to understand that with these three actions we can create, update or delete _documents_. In this particular case we're creating a new _schema field_ document, the one containing the `message` field! This is why the action is set to `0`. @@ -163,7 +163,7 @@ You will see later that there are other schema ids as well, and by creating a `c :::note System vs. application schemas -`schema_field_definition_v1` is a _system_ schema which means that it is already registered by default on every node which follows the [p2panda specification](/specification/data-types/schemas). Our `chat` schema will be an _application_ schema, it is not used for special p2panda cases like creating a new schema but for building a chat application! +`schema_field_definition_v1` is a _system_ schema which means that it is already registered by default on every node which follows the [p2panda specification](/specifications/aquadoggo/data-types/schemas). Our `chat` schema will be an _application_ schema, it is not used for special p2panda cases like creating a new schema but for building a chat application! ::: @@ -182,7 +182,7 @@ You can try to send a `schema_field_definition_v1` with missing or wrong fields ::: -The `name` field indicates what the name of our future schema field should be and we decided it should be `message`. You can put in anything else here if you want to come up with a different schema, just make sure it follows the [naming rules](/specification/data-types/schemas). +The `name` field indicates what the name of our future schema field should be and we decided it should be `message`. You can put in anything else here if you want to come up with a different schema, just make sure it follows the [naming rules](/specifications/aquadoggo/data-types/schemas). The `type` field indicates what type this `message` field should have. We can pick a couple of options here, but `str` is probably what we want. Otherwise there is: @@ -239,7 +239,7 @@ Let's remember this operation id for now, we need it later. Ah, of course its to Private keys are sensitive information which should never leave your computer, usually you want to keep them somewhere in a well protected place. For this tutorial it may not be that important though, you could delete that file again and generate a new one if you want. If you keep the file `send-to-node` will re-use it next time which is cool. -By the way, in p2panda it is important to have [multiple keys](/specification/data-types/key-pairs) for different applications, purposes or devices. +By the way, in p2panda it is important to have [multiple keys](/specifications/aquadoggo/data-types/key-pairs) for different applications, purposes or devices. ::: @@ -323,7 +323,7 @@ This looks slightly different from the previous operations we were sending, but You would probably like to start with `name` as the first field, right? The ordering of the field names _needs_ to be alphabetical though. You can try a different order, but the `aquadoggo` will reject it with a friendly error message telling you what order it expected the fields to be. -All of this is required to ensure an [canonical encoding](/specification/encoding-data) of operations. +All of this is required to ensure an [canonical encoding](/specifications/aquadoggo/encoding-data) of operations. ::: @@ -449,7 +449,7 @@ With the help of the `previous` field we can build a whole _Operation Graph_ of Another thing to note here is that we do not have to mention _all_ fields of our `chat` schema, but only the ones we want to update, in this case it is the `message` field. -We're already having the schema id and we can insert it into `005-update-message.json` but where do we get that _view id_ from? It is basically the last known version of that document we want to apply the changes on, we also call this a [_Document View Id_](/specification/data-types/document-views). +We're already having the schema id and we can insert it into `005-update-message.json` but where do we get that _view id_ from? It is basically the last known version of that document we want to apply the changes on, we also call this a [_Document View Id_](/specifications/aquadoggo/data-types/document-views). Again, the GraphQL playground can help us here. We can simply just query all chat messages and ask for their regarding `viewId` with the following query: