You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2018/11/01 14:51:07 UTC

[sling-org-apache-sling-capabilities-jcr] branch master updated: Flesh out README

This is an automated email from the ASF dual-hosted git repository.

bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-capabilities-jcr.git


The following commit(s) were added to refs/heads/master by this push:
     new 8fe3318  Flesh out README
8fe3318 is described below

commit 8fe3318cc3232cc53d81144accb9db8239491dd0
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Nov 1 15:51:02 2018 +0100

    Flesh out README
---
 README.md | 50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 47 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 7f832ac..c95967a 100644
--- a/README.md
+++ b/README.md
@@ -7,10 +7,54 @@ Sling Capabilities - JCR sources
 
 This module is part of the [Apache Sling](https://sling.apache.org) project.
 
-It provides information about the JCR repository to the Sling Capabilities module.
+It provides information about the JCR repository to the [Sling Capabilities](https://github.com/apache/sling-org-apache-sling-capabilities) module.
 
 It is implemented separately to avoid making the core module dependent on JCR APIs.
 
-TODO: complete this.
+Usage
+-----
+For now, this module's `SearchSource` provides just one capability that indicates whether the Oak similarity search feature is available. Here's typical JSON output of the `CapabilitiesServlet` when this source is active:
 
-TODO: add a link to these modules to the sling website bundles page.
+    {
+      "org.apache.sling.capabilities": {
+        "data": {
+          "org.apache.sling.jcr.search": {
+            "similarity.search.active": "false"
+          }
+        }
+      }
+    }
+
+To compute this value, the `SearchSource` needs to make a JCR query to find out whether similarity search is available - that is the case if there is at least one Oak index configuration which has `@useInSimilarity = true`.
+
+That query is configurable in the `SearchSource` component, with a default value that should work for common cases.
+
+The cache lifetime of that value in the `SearchSource` component is also configurable, with a default of 60 seconds. The component caches the query result for that amount of time to avoid making too many queries.
+
+To execute this query, the `SearchSource` uses a Service User that needs read access under `/oak:index`. 
+
+The following feature model excerpt can be used to set that up. It also creates a `/var/capabilities/public` path that every user can read. Resources with the `sling/capabilities` resource type can be created under that path to provide access to the capabilities. See the Capabilities module documentation for more information.
+
+    "configurations": {
+        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~cq-capabilities-jcr": {
+          "user.mapping": [
+            "org.apache.sling.capabilities.jcr:search=[capabilities-search]"
+          ]
+        },
+        "org.apache.sling.capabilities.internal.CapabilitiesServlet": {
+          "resourcePathPatterns" : "/var/capabilities/.*"
+        }
+      },
+      "repoinit:TEXT|true": [
+        "create service user capabilities-search",
+        "",
+        "set ACL for capabilities-search",
+        "allow jcr:read on /oak:index",
+        "end",
+        "",
+        "create path /var/capabilities/public(nt:unstructured)",
+        "",
+        "set ACL on /var/capabilities/public",
+        "allow jcr:read for everyone",
+        "end"
+    ]