From e4f1c7409edd85a02720c3e994cb59467c55c90e Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Mon, 12 May 2025 15:26:50 +0100 Subject: [PATCH 01/17] add line --- example/modules/ROOT/pages/intro.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/example/modules/ROOT/pages/intro.adoc b/example/modules/ROOT/pages/intro.adoc index a4e16e3..c6805b8 100644 --- a/example/modules/ROOT/pages/intro.adoc +++ b/example/modules/ROOT/pages/intro.adoc @@ -1,3 +1,4 @@ # This is an example Here is a test example. +A second line on this example. From 50352880a4bfcd3be112bd853df60ffd927208a6 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 14 May 2025 10:12:33 +0100 Subject: [PATCH 02/17] more updates --- example/modules/ROOT/pages/intro.adoc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/example/modules/ROOT/pages/intro.adoc b/example/modules/ROOT/pages/intro.adoc index c6805b8..a2dd5f9 100644 --- a/example/modules/ROOT/pages/intro.adoc +++ b/example/modules/ROOT/pages/intro.adoc @@ -1,4 +1,22 @@ # This is an example +:description: pass:q[Roles grant users access to one or more resources.] + +Note that this role does not grant the ability to back up or restore users. Here is a test example. A second line on this example. + +This page is about what is so good about couchbase server. And about couchbase capella. + +[#table_backup_admin_role,cols="1,2,2,hrows=2"] +|=== +5+^| Role: XDCR Admin (`replication_admin`) +3+^| Role: Backup Full Admin (`backup_admin`) +|=== + +A list: + +* of items +** like this +** and this +** Users that are explicitly registered on Couchbase Server as _external_; as supported either by _LDAP_, _Security Assertion Markup Language (SAML)_, or _PAM_. \ No newline at end of file From 965980fd34ec05a31e80c87cda29aeeec25e376f Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 14 May 2025 12:36:34 +0100 Subject: [PATCH 03/17] update test vale-review --- .github/workflows/test.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5a348d9..4ee6c30 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,11 +1,18 @@ name: Hakim testing on: - workflow_dispatch: + pull_request: + paths: + # the following should match `path:` declaration below + - example/** jobs: vale: uses: couchbaselabs/docs-runner/.github/workflows/vale-review.yml@main with: - repo: ${{github.repository}} path: example + + pull_request_number: ${{ github.event.number }} + base_sha: ${{ github.event.pull_request.base.sha }} + head_sha: ${{ github.event.pull_request.head }} + repository: ${{github.repository}} From df403b6290bd6dd1a0a70032912a79c3476d9a42 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 14 May 2025 13:58:54 +0100 Subject: [PATCH 04/17] head.sha --- .github/workflows/test.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4ee6c30..9335966 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,8 +11,7 @@ jobs: uses: couchbaselabs/docs-runner/.github/workflows/vale-review.yml@main with: path: example - pull_request_number: ${{ github.event.number }} base_sha: ${{ github.event.pull_request.base.sha }} - head_sha: ${{ github.event.pull_request.head }} - repository: ${{github.repository}} + head_sha: ${{ github.event.pull_request.head.sha }} + repository: ${{ github.repository }} From 73e72113ab787b2227650fb15d7dd72f84a5920b Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 14 May 2025 14:43:15 +0100 Subject: [PATCH 05/17] secrets: inherit --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9335966..c08302d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,3 +15,4 @@ jobs: base_sha: ${{ github.event.pull_request.base.sha }} head_sha: ${{ github.event.pull_request.head.sha }} repository: ${{ github.repository }} + secrets: inherit From 8e398313d7269d5153800463b6856cf9dfc04084 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 14 May 2025 14:45:56 +0100 Subject: [PATCH 06/17] more words --- example/modules/ROOT/pages/intro.adoc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/example/modules/ROOT/pages/intro.adoc b/example/modules/ROOT/pages/intro.adoc index a2dd5f9..849b3f0 100644 --- a/example/modules/ROOT/pages/intro.adoc +++ b/example/modules/ROOT/pages/intro.adoc @@ -19,4 +19,7 @@ A list: * of items ** like this ** and this -** Users that are explicitly registered on Couchbase Server as _external_; as supported either by _LDAP_, _Security Assertion Markup Language (SAML)_, or _PAM_. \ No newline at end of file +** Users that are explicitly registered on Couchbase Server as _external_; as supported either by _LDAP_, _Security Assertion Markup Language (SAML)_, or _PAM_. + +Roles grant access to databases. +It's important not to access the database directly. \ No newline at end of file From 1c9012a3aca6bd5151cdabeb164bce5180c101e1 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 14 May 2025 15:11:32 +0100 Subject: [PATCH 07/17] more access --- example/modules/ROOT/pages/intro.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/example/modules/ROOT/pages/intro.adoc b/example/modules/ROOT/pages/intro.adoc index 849b3f0..ee86f9c 100644 --- a/example/modules/ROOT/pages/intro.adoc +++ b/example/modules/ROOT/pages/intro.adoc @@ -22,4 +22,6 @@ A list: ** Users that are explicitly registered on Couchbase Server as _external_; as supported either by _LDAP_, _Security Assertion Markup Language (SAML)_, or _PAM_. Roles grant access to databases. -It's important not to access the database directly. \ No newline at end of file +It's important not to access the database directly. +Database access is great! +Role based access controls are awesome! \ No newline at end of file From 2da619c1775b0aedabebbfeb57bc7cffc168cef4 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 14 May 2025 16:31:02 +0100 Subject: [PATCH 08/17] Add copy of CBL doc from https://github.com/couchbase/docs-couchbase-lite/edit/release/3.2/modules/android/pages/p2psync-custom.adoc --- cbl-android-p2p.adoc | 350 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 350 insertions(+) create mode 100644 cbl-android-p2p.adoc diff --git a/cbl-android-p2p.adoc b/cbl-android-p2p.adoc new file mode 100644 index 0000000..55a58e2 --- /dev/null +++ b/cbl-android-p2p.adoc @@ -0,0 +1,350 @@ += Integrate a Custom Built Listener +:page-aliases: learn/java-android-p2psync-custom.adoc +ifdef::show_edition[:page-edition: Enterprise Edition] +:page-role: +:description: Couchbase Lite database peer-to-peer sync- integrate a custom built listener + + +:source-language: Java + + +:source-language: Kotlin + + +// :param-name: kotlin +// :param-title: Android +// :param-module: android + + +[abstract] +-- +Description -- _{description}_ + +Related Content -- https://docs.couchbase.com/mobile/{major}.{minor}.{maintenance-android}{empty}/couchbase-lite-android/[API Reference] | xref:android:p2psync-websocket.adoc[Peer-to-Peer] | xref:android:p2psync-custom.adoc[Integrate Custom Listener] +-- + +[#overview] +== Overview + +.Enterprise Edition only +IMPORTANT: Peer-to-Peer Synchronization is an https://www.couchbase.com/products/editions[Enterprise Edition] feature. +You must purchase the Enterprise License, which includes official https://www.couchbase.com/support-policy[Couchbase Support]. +To use it in production (also see the https://www.couchbase.com/licensing-and-support-faq[FAQ]). + +This content covers how to integrate a custom __MessageEndpointListener__ solution with Couchbase Lite to handle the data transfer, which is the sending and receiving of data. +Where applicable, we discuss how to integrate Couchbase Lite into the workflow. + +The following sections describe a typical Peer-to-Peer workflow. + +[#peer-discovery] +== Peer Discovery + +Peer discovery is the first step. +The communication framework will generally include a Peer discovery API for devices to advertise themselves on the network and to browse for other Peers. + +image::ROOT:discovery.png[] + +[#active-peer] +=== Active Peer + +The first step is to initialize the Couchbase Lite database. + +[#passive-peer] +=== Passive Peer + +In addition to initializing the database, the Passive Peer must initialize the `MessageEndpointListener`. +The `MessageEndpointListener` acts as a Listener for incoming connections. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=listener,indent=0] +---- + +[#peer-selection-and-connection-setup] +== Peer Selection and Connection Setup + + +Once a Peer device is found, the application code must decide whether it should establish a connection with that Peer. +This step includes inviting a Peer to a session and Peer authentication. + +This is handled by the Communication Framework. + +image::ROOT:selection.png[] + +Once the remote Peer has been authenticated, the next step is to connect with that Peer and initialize the Message Endpoint API. + + +[#replication-setup] +== Replication Setup + + +image::ROOT:connection.png[] + +[#active-peer-2] +=== Active Peer + +When the connection is established, the active Peer must instantiate a `MessageEndpoint` object corresponding to the remote Peer. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=message-endpoint,indent=0] +---- + +The `MessageEndpoint` initializer takes the following arguments. + +. `uid`: a unique ID that represents the remote active Peer. +. `target`: This represents the remote passive Peer and could be any suitable representation of the remote Peer. +It could be an Id, URL etc. +If using the MultiPeerConnectivity Framework, this could be the MCPeerID. +. `protocolType`: specifies the kind of transport you intend to implement. +There are two options. + ** The default (`MessageStream`) means that you want to "send a series of messages", or in other words the Communication Framework will control the formatting of messages so that there are clear boundaries between messages. + ** The alternative (`ByteStream`) means that you just want to send raw bytes over the stream and Couchbase should format for you to ensure that messages get delivered in full. ++ +Typically, the Communication Framework will handle message assembly and disassembly so you would use the `MessageType` option in most cases. + +. `delegate`: the delegate that will implement the `MessageEndpointDelegate` protocol, which is a factory for `MessageEndpointConnection`. + +Then, a `Replicator` is instantiated with the initialized `MessageEndpoint` as the target. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=message-endpoint-replicator,indent=0] +---- + +Next, Couchbase Lite will call back the application code through the `MessageEndpointDelegate.createConnection` interface method. +When the application receives the callback, it must create an instance of `MessageEndpointConnection` and return it. + + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=create-connection,indent=0] +---- +Next, Couchbase Lite will call back the application code through the `MessageEndpointConnection.open` method. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=active-peer-open,indent=0] +---- + +The connection argument is then set on an instance variable. +The application code must keep track of every `ReplicatorConnection` associated with every `MessageEndpointConnection`. + +The `MessageError` argument in the completion block specifies whether the error is recoverable or not. +If it is a recoverable error, the replicator will begin a retry process, creating a new `MessageEndpointConnection` instance. + +[#passive-peer-2] +=== Passive Peer + +After connection establishment on the Passive Peer, the first step is to initialize a new `MessageEndpointConnection` and pass it to the listener. +This message tells the listener to accept incoming data from that Peer. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=advertizer-accept,indent=0] +---- + +`messageEndpointListener` is the instance of the `MessageEndpointListener` that was created in the first step (<>) + +Couchbase Lite will call the application code back through the `MessageEndpointConnection.open` method. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=passive-peer-open,indent=0] +---- + +The `connection` argument is then set on an instance variable. +The application code must keep track of every `ReplicatorConnection` associated with every `MessageEndpointConnection`. + +At this point, the connection is established, and both Peers are ready to exchange data. + + +[#pushpull-replication] +== Push/Pull Replication + +Typically, an application needs to send data and receive data. +The directionality of the replication could be any of the following. + +* *Push only:* The data is pushed from the local database to the remote database. + +* *Pull only:* The data is pulled from the remote database to the local database. + +* *Push and Pull:* The data is exchanged both ways. + +Usually, the remote is a Sync Gateway database identified through a URL. +In Peer-to-Peer syncing, the remote is another Couchbase Lite database. + +image::ROOT:replication.png[] + +The replication lifecycle is handled through the `MessageEndpointConnection`. + +[#active-peer-3] +=== Active Peer + +When Couchbase Lite calls back the application code through the `MessageEndpointConnection.send` method, you should send that data to the other Peer using the communication framework. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=active-peer-send,indent=0] +---- + +Once the data is sent, call the completion block to acknowledge the completion. +You can use the `MessageError` in the completion block to specify whether the error is recoverable. +If it is a recoverable error, the replicator will begin a retry process, creating a new `MessageEndpointConnection`. + + +When data is received from the passive Peer via the Communication Framework, you call the `ReplicatorConnection.receive` method. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=active-peer-receive,indent=0] +---- + +The replication connection's `receive` method is called. Which then processes the data to persist to the local database. + +[#passive-peer-3] +=== Passive Peer + +As in the case of the active Peer, the passive Peer must implement the `MessageEndpointConnection.send` method to send data to the other Peer. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=passive-peer-send,indent=0] +---- + +Once the data is sent, call the completion block to acknowledge the completion. +You can use the `MessageError` in the completion block to specify whether the error is recoverable. +If it is a recoverable error, the replicator will begin a retry process, creating a new `MessageEndpointConnection`. + +When data is received from the active Peer via the Communication Framework, you call the `ReplicatorConnection.receive` method. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=passive-peer-receive,indent=0] +---- + +[#connection-teardown] +== Connection Teardown + +When a Peer disconnects from a Peer-to-Peer network, all connected Peers are notified. +The disconnect notification is a good opportunity to close and remove a replication connection. +The steps to Teardown the connection are slightly different depending on whether the active or passive Peer disconnects first. +We will cover each case below. + +[#initiated-by-active-peer] +=== Initiated by Active Peer + +image::ROOT:dis-active.png[] + +[#active-peer-4] +=== Active Peer + +When an active Peer disconnects, it must call the `ReplicatorConnection.close` method. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=active-replicator-close,indent=0] +---- + +Then, Couchbase Lite will call back your code through the `MessageEndpointConnection.close` to allow the application to disconnect with the Communication Framework. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=active-peer-close,indent=0] +---- + +[#passive-peer-4] +=== Passive Peer + +When the passive Peer receives the corresponding disconnect notification from the Communication Framework, it must call the `ReplicatorConnection.close` method. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=passive-replicator-close,indent=0] +---- + +Then, Couchbase Lite will call back your code through the `MessageEndpointConnection.close` to allow the application to disconnect with the Communication Framework. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=passive-peer-close,indent=0] +---- + +[#initiated-by-passive-peer] +=== Initiated by Passive Peer + +image::ROOT:dis-passive.png[] + +[#passive-peer-5] +=== Passive Peer + +When the passive disconnects, it must class the `MessageEndpointListener.closeAll` method. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=passive-stop-listener,indent=0] +---- + +Then, Couchbase Lite will call back your code through the `MessageEndpointConnection.close` to allow the application to disconnect with the Communication Framework. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=passive-peer-close,indent=0] +---- + +[#active-peer-5] +=== Active Peer + +When the active Peer receives the corresponding disconnect notification from the Communication Framework, it must call the `ReplicatorConnection.close` method. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=active-replicator-close,indent=0] +---- + +Then, Couchbase Lite will call back your code through the `MessageEndpointConnection.close` to allow the application to disconnect with the Communication Framework. + +[source] +---- +include::android:example$codesnippet_collection.kt[tag=active-peer-close,indent=0] +---- + +[#related-content] +== Related Content +++++ +
+++++ + +[.column] +=== {empty} +.How to +* xref:android:p2psync-websocket-using-passive.adoc[Passive Peer] +* xref:android:p2psync-websocket-using-active.adoc[Active Peer] + + +. + +[.column] +=== {empty} +.Concepts +* xref:android:landing-p2psync.adoc[Peer-to-Peer Sync] + +* https://docs.couchbase.com/mobile/{major}.{minor}.{maintenance-android}{empty}/couchbase-lite-android/[API References] + +. + + +[.column] +=== {empty} +.Community Resources ... +https://forums.couchbase.com/c/mobile/14[Mobile Forum] | +https://blog.couchbase.com/[Blog] | +https://docs.couchbase.com/tutorials/[Tutorials] + +. +xref:tutorials:cbl-p2p-sync-websockets:swift/cbl-p2p-sync-websockets.adoc[Getting Started with Peer-to-Peer Synchronization] + + +++++ +
+++++ + From 5ff21fec9a880b0d75d9b25a62b8ef465695abd9 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 14 May 2025 16:36:24 +0100 Subject: [PATCH 09/17] rename --- .../modules/ROOT/pages/cbl-android-p2p.adoc | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename cbl-android-p2p.adoc => example/modules/ROOT/pages/cbl-android-p2p.adoc (100%) diff --git a/cbl-android-p2p.adoc b/example/modules/ROOT/pages/cbl-android-p2p.adoc similarity index 100% rename from cbl-android-p2p.adoc rename to example/modules/ROOT/pages/cbl-android-p2p.adoc From 3d3967ae1f2776e99b587b00d918a85b9ff618c8 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 15 May 2025 08:35:57 +0100 Subject: [PATCH 10/17] bump --- example/modules/ROOT/pages/intro.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/example/modules/ROOT/pages/intro.adoc b/example/modules/ROOT/pages/intro.adoc index ee86f9c..08d76ce 100644 --- a/example/modules/ROOT/pages/intro.adoc +++ b/example/modules/ROOT/pages/intro.adoc @@ -24,4 +24,6 @@ A list: Roles grant access to databases. It's important not to access the database directly. Database access is great! -Role based access controls are awesome! \ No newline at end of file +Role based access controls are awesome! + +Look at xref:couchbase.adoc[] for more information about Couchbase Server. \ No newline at end of file From d38eb4ddfdabd6bc8e9840d78ea4dd0066633dc6 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 15 May 2025 09:21:02 +0100 Subject: [PATCH 11/17] seashells --- example/modules/ROOT/pages/intro.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/example/modules/ROOT/pages/intro.adoc b/example/modules/ROOT/pages/intro.adoc index 08d76ce..910ee9e 100644 --- a/example/modules/ROOT/pages/intro.adoc +++ b/example/modules/ROOT/pages/intro.adoc @@ -26,4 +26,5 @@ It's important not to access the database directly. Database access is great! Role based access controls are awesome! -Look at xref:couchbase.adoc[] for more information about Couchbase Server. \ No newline at end of file +Look at xref:couchbase.adoc[] for more information about Couchbase Server. +She sells seashells by the seashore. \ No newline at end of file From c18bbcb7be48cd0ff5eb3deb41b9c13dbe5dd78d Mon Sep 17 00:00:00 2001 From: Hakim Date: Thu, 15 May 2025 10:16:11 +0100 Subject: [PATCH 12/17] Update example/modules/ROOT/pages/cbl-android-p2p.adoc --- example/modules/ROOT/pages/cbl-android-p2p.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/modules/ROOT/pages/cbl-android-p2p.adoc b/example/modules/ROOT/pages/cbl-android-p2p.adoc index 55a58e2..134ef70 100644 --- a/example/modules/ROOT/pages/cbl-android-p2p.adoc +++ b/example/modules/ROOT/pages/cbl-android-p2p.adoc @@ -170,7 +170,7 @@ The directionality of the replication could be any of the following. * *Push and Pull:* The data is exchanged both ways. -Usually, the remote is a Sync Gateway database identified through a URL. +Typically, the remote is a Sync Gateway database identified through a URL. In Peer-to-Peer syncing, the remote is another Couchbase Lite database. image::ROOT:replication.png[] From 6e33f97ef412847c4fe0685da69523c3333b1b07 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 15 May 2025 11:40:40 +0100 Subject: [PATCH 13/17] only on review requested @tech-comm-team-couchbase --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c08302d..73bbcec 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,12 +2,14 @@ name: Hakim testing on: pull_request: + types: [review_requested] paths: # the following should match `path:` declaration below - example/** jobs: vale: + if: github.event.requested_reviewer == 'tech-comm-team-couchbase' uses: couchbaselabs/docs-runner/.github/workflows/vale-review.yml@main with: path: example From ef70bd9a0b2c31ec7d7e21d34357f708d4ec7249 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 15 May 2025 11:51:54 +0100 Subject: [PATCH 14/17] better requested_reviewer check --- .github/workflows/test.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 73bbcec..8e4b5e6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,8 +8,17 @@ on: - example/** jobs: + diag: + runs-on: ubuntu-latest + steps: + - name: reviewer + run: | + echo REVIEWER $REVIEWER + env: + REVIEWER: ${{ github.event.requested_reviewer.name }} + vale: - if: github.event.requested_reviewer == 'tech-comm-team-couchbase' + if: github.event.requested_reviewer.name == 'tech-comm-team-couchbase' uses: couchbaselabs/docs-runner/.github/workflows/vale-review.yml@main with: path: example From f6c0d8468bb57d247033cf82c7643f624d3b8908 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 15 May 2025 11:56:38 +0100 Subject: [PATCH 15/17] login --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8e4b5e6..ee57236 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,10 +15,10 @@ jobs: run: | echo REVIEWER $REVIEWER env: - REVIEWER: ${{ github.event.requested_reviewer.name }} + REVIEWER: ${{ github.event.requested_reviewer.login }} vale: - if: github.event.requested_reviewer.name == 'tech-comm-team-couchbase' + if: github.event.requested_reviewer.login == 'tech-comm-team-couchbase' uses: couchbaselabs/docs-runner/.github/workflows/vale-review.yml@main with: path: example From e7b56c26bacc292ff6794ee0845988592d2553a6 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Fri, 16 May 2025 11:58:27 +0100 Subject: [PATCH 16/17] test see https://github.com/couchbaselabs/docs-devex/pull/347/files --- example/modules/ROOT/pages/intro.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/example/modules/ROOT/pages/intro.adoc b/example/modules/ROOT/pages/intro.adoc index 910ee9e..0331c64 100644 --- a/example/modules/ROOT/pages/intro.adoc +++ b/example/modules/ROOT/pages/intro.adoc @@ -27,4 +27,6 @@ Database access is great! Role based access controls are awesome! Look at xref:couchbase.adoc[] for more information about Couchbase Server. -She sells seashells by the seashore. \ No newline at end of file +She sells seashells by the seashore. + +NOTE: We recommend keeping residentRatio above 10 to avoid issues like index build failures. \ No newline at end of file From f3e61d33a011ae00c2e0cf4aba70ff8840ac5085 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Mon, 19 May 2025 09:03:41 +0100 Subject: [PATCH 17/17] rename --- .github/workflows/{test.yml => review-requested.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{test.yml => review-requested.yml} (97%) diff --git a/.github/workflows/test.yml b/.github/workflows/review-requested.yml similarity index 97% rename from .github/workflows/test.yml rename to .github/workflows/review-requested.yml index ee57236..4f7e0a5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/review-requested.yml @@ -1,4 +1,4 @@ -name: Hakim testing +name: Review Requested on: pull_request: