From dda2fd1e0e47c1f64f4eacc9aee36820382cc0df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 2 May 2022 17:30:15 +0000 Subject: [PATCH] =?UTF-8?q?commit=201c8b353d4478b3fd662a29cc2012490ae3c8a9?= =?UTF-8?q?b0=20Merge:=20ea08dc995=20fd4ec56b3=20Author:=20J=C3=B6rn=20Fri?= =?UTF-8?q?edrich=20Dreyer=20=20Date:=20=20=20Mon=20May?= =?UTF-8?q?=202=2019:25:07=202022=20+0200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge pull request #3635 from aduffeck/search Add initial version of the search extension --- .../_includes/proxy-config-example.yaml | 28 +++++ .../_includes/search-config-example.yaml | 26 +++++ extensions/_includes/search_configvars.md | 15 +++ extensions/_includes/web-config-example.yaml | 3 +- extensions/port-ranges.md | 2 +- extensions/storage/ports.md | 7 +- grpc_apis/ocis/messages/accounts/v0/grpc.md | 2 +- grpc_apis/ocis/messages/search/v0/grpc.md | 79 +++++++++++++ grpc_apis/ocis/messages/settings/v0/grpc.md | 2 +- grpc_apis/ocis/messages/store/v0/grpc.md | 2 +- grpc_apis/ocis/messages/thumbnails/v0/grpc.md | 2 +- grpc_apis/ocis/services/accounts/v0/grpc.md | 2 +- grpc_apis/ocis/services/search/v0/grpc.md | 105 ++++++++++++++++++ grpc_apis/ocis/services/settings/v0/grpc.md | 2 +- grpc_apis/ocis/services/store/v0/grpc.md | 2 +- grpc_apis/ocis/services/thumbnails/v0/grpc.md | 2 +- 16 files changed, 269 insertions(+), 12 deletions(-) create mode 100644 extensions/_includes/search-config-example.yaml create mode 100644 extensions/_includes/search_configvars.md create mode 100644 grpc_apis/ocis/messages/search/v0/grpc.md create mode 100644 grpc_apis/ocis/services/search/v0/grpc.md diff --git a/extensions/_includes/proxy-config-example.yaml b/extensions/_includes/proxy-config-example.yaml index dc17179bc16..e10d22009e8 100644 --- a/extensions/_includes/proxy-config-example.yaml +++ b/extensions/_includes/proxy-config-example.yaml @@ -26,111 +26,139 @@ policies: - name: ocis routes: - type: "" + method: "" endpoint: / backend: http://localhost:9100 service: "" apache-vhost: false - type: "" + method: "" endpoint: /.well-known/ backend: http://localhost:9130 service: "" apache-vhost: false - type: "" + method: "" endpoint: /konnect/ backend: http://localhost:9130 service: "" apache-vhost: false - type: "" + method: "" endpoint: /signin/ backend: http://localhost:9130 service: "" apache-vhost: false - type: "" + method: "" endpoint: /archiver backend: http://localhost:9140 service: "" apache-vhost: false - type: regex + method: "" endpoint: /ocs/v[12].php/cloud/(users?|groups) backend: http://localhost:9110 service: "" apache-vhost: false - type: "" + method: "" endpoint: /ocs/ backend: http://localhost:9140 service: "" apache-vhost: false - type: query + method: "" endpoint: /remote.php/?preview=1 backend: http://localhost:9115 service: "" apache-vhost: false - type: "" + method: REPORT + endpoint: /remote.php/dav/ + backend: http://localhost:9115 + service: "" + apache-vhost: false + - type: "" + method: "" endpoint: /remote.php/ backend: "" service: ocdav apache-vhost: false - type: "" + method: "" endpoint: /dav/ backend: "" service: ocdav apache-vhost: false - type: "" + method: "" endpoint: /webdav/ backend: "" service: ocdav apache-vhost: false - type: "" + method: "" endpoint: /status.php backend: "" service: ocdav apache-vhost: false - type: "" + method: "" endpoint: /index.php/ backend: "" service: ocdav apache-vhost: false - type: "" + method: "" endpoint: /apps/ backend: "" service: ocdav apache-vhost: false - type: "" + method: "" endpoint: /data backend: http://localhost:9140 service: "" apache-vhost: false - type: "" + method: "" endpoint: /app/ backend: http://localhost:9140 service: "" apache-vhost: false - type: "" + method: "" endpoint: /graph/ backend: http://localhost:9120 service: "" apache-vhost: false - type: "" + method: "" endpoint: /graph-explorer backend: http://localhost:9135 service: "" apache-vhost: false - type: "" + method: "" endpoint: /api/v0/accounts backend: http://localhost:9181 service: "" apache-vhost: false - type: "" + method: "" endpoint: /accounts.js backend: http://localhost:9181 service: "" apache-vhost: false - type: "" + method: "" endpoint: /api/v0/settings backend: http://localhost:9190 service: "" apache-vhost: false - type: "" + method: "" endpoint: /settings.js backend: http://localhost:9190 service: "" diff --git a/extensions/_includes/search-config-example.yaml b/extensions/_includes/search-config-example.yaml new file mode 100644 index 00000000000..559aef486a7 --- /dev/null +++ b/extensions/_includes/search-config-example.yaml @@ -0,0 +1,26 @@ +# Autogenerated +tracing: + enabled: false + type: "" + endpoint: "" + collector: "" +log: + level: "" + pretty: false + color: false + file: "" +debug: + addr: 127.0.0.1:9224 + token: "" + pprof: false + zpages: false +grpc: + addr: 127.0.0.1:9220 +data_path: ~/.ocis/search +reva: + address: 127.0.0.1:9142 +events: + events_endpoint: 127.0.0.1:9233 + events_cluster: ocis-cluster + events_group: search +machine_auth_api_key: change-me-please diff --git a/extensions/_includes/search_configvars.md b/extensions/_includes/search_configvars.md new file mode 100644 index 00000000000..28060172ff2 --- /dev/null +++ b/extensions/_includes/search_configvars.md @@ -0,0 +1,15 @@ +## Environment Variables + +| Name | Type | Default Value | Description | +|------|------|---------------|-------------| +| SEARCH_DEBUG_ADDR | string | 127.0.0.1:9224 | | +| SEARCH_DEBUG_TOKEN | string | | | +| SEARCH_DEBUG_PPROF | bool | false | | +| SEARCH_DEBUG_ZPAGES | bool | false | | +| ACCOUNTS_GRPC_ADDR | string | 127.0.0.1:9220 | The address of the grpc service.| +| SEARCH_DATA_PATH | string | ~/.ocis/search | | +| REVA_GATEWAY | string | 127.0.0.1:9142 | | +| SEARCH_EVENTS_ENDPOINT | string | 127.0.0.1:9233 | the address of the streaming service| +| SEARCH_EVENTS_CLUSTER | string | ocis-cluster | the clusterID of the streaming service. Mandatory when using nats| +| SEARCH_EVENTS_GROUP | string | search | the customergroup of the service. One group will only get one copy of an event| +| OCIS_MACHINE_AUTH_API_KEY;SEARCH_MACHINE_AUTH_API_KEY | string | change-me-please | | \ No newline at end of file diff --git a/extensions/_includes/web-config-example.yaml b/extensions/_includes/web-config-example.yaml index 9dd37db72ea..8b24c79ce8f 100644 --- a/extensions/_includes/web-config-example.yaml +++ b/extensions/_includes/web-config-example.yaml @@ -44,4 +44,5 @@ web: - external - user-management external_apps: [] - options: {} + options: + hideSearchBar: false diff --git a/extensions/port-ranges.md b/extensions/port-ranges.md index ac28f54c53c..bc3143c08e7 100644 --- a/extensions/port-ranges.md +++ b/extensions/port-ranges.md @@ -42,7 +42,7 @@ We also suggest to use the last port in your extensions' range as a debug/metric | 9205-9209 | [markdown-editor](https://github.com/owncloud/ocis-markdown-editor) | | 9210-9214 | [reva](https://github.com/owncloud/ocis-reva) unused? | | 9215-9219 | reva metadata storage | -| 9220-9224 | FREE | +| 9220-9224 | search | | 9225-9229 | photoprism (state: PoC) | | 9230-9234 | [nats](https://github.com/owncloud/ocis/tree/master/nats) | | 9235-9239 | idm TBD | diff --git a/extensions/storage/ports.md b/extensions/storage/ports.md index 2ab34f5dd92..62bd6ac82e1 100644 --- a/extensions/storage/ports.md +++ b/extensions/storage/ports.md @@ -34,10 +34,13 @@ For now, the storage service uses these ports to preconfigure those services: | 9159 | storage users debug | | 9160 | groups | | 9161 | groups debug | -| 9164 | storage appprovider | -| 9165 | storage appprovider debug | +| 9164 | storage appprovider | +| 9165 | storage appprovider debug | | 9178 | storage public link | | 9179 | storage public link data | +| 9180 | accounts grpc | +| 9181 | accounts http | +| 9182 | accounts debug | | 9215 | storage meta grpc | | 9216 | storage meta http | | 9217 | storage meta debug | diff --git a/grpc_apis/ocis/messages/accounts/v0/grpc.md b/grpc_apis/ocis/messages/accounts/v0/grpc.md index e3155de38bb..ca0a7d48d6a 100644 --- a/grpc_apis/ocis/messages/accounts/v0/grpc.md +++ b/grpc_apis/ocis/messages/accounts/v0/grpc.md @@ -1,7 +1,7 @@ --- title: "ocis.messages.accounts.v0" url: /grpc_apis/ocis_messages_accounts_v0 -date: 2022-05-02T16:18:37Z +date: 2022-05-02T17:29:10Z weight: 50 geekdocRepo: https://github.com/owncloud/ocis --- diff --git a/grpc_apis/ocis/messages/search/v0/grpc.md b/grpc_apis/ocis/messages/search/v0/grpc.md new file mode 100644 index 00000000000..334ff9d57ed --- /dev/null +++ b/grpc_apis/ocis/messages/search/v0/grpc.md @@ -0,0 +1,79 @@ +--- +title: "ocis.messages.search.v0" +url: /grpc_apis/ocis_messages_search_v0 +date: 2022-05-02T17:29:10Z +weight: 50 +geekdocRepo: https://github.com/owncloud/ocis +--- + +{{< toc >}} + + + +## ocis/messages/search/v0/search.proto + +### Entity + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| ref | [Reference](#reference) | | | +| id | [ResourceID](#resourceid) | | | +| name | [string](#string) | | | +| etag | [string](#string) | | | +| size | [uint64](#uint64) | | | +| last_modified_time | [google.protobuf.Timestamp](#googleprotobuftimestamp) | | | +| mime_type | [string](#string) | | | +| permissions | [string](#string) | | | +| type | [uint64](#uint64) | | | +| deleted | [bool](#bool) | | | + +### Match + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| entity | [Entity](#entity) | | the matched entity | +| score | [float](#float) | | the match score | + +### Reference + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| resource_id | [ResourceID](#resourceid) | | | +| path | [string](#string) | | | + +### ResourceID + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| storage_id | [string](#string) | | | +| opaque_id | [string](#string) | | | + + +## Scalar Value Types + +| .proto Type | Notes | C++ | Java | +| ----------- | ----- | --- | ---- | +| {{< div id="double" content="double" >}} | | double | double | +| {{< div id="float" content="float" >}} | | float | float | +| {{< div id="int32" content="int32" >}} | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | +| {{< div id="int64" content="int64" >}} | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | +| {{< div id="uint32" content="uint32" >}} | Uses variable-length encoding. | uint32 | int | +| {{< div id="uint64" content="uint64" >}} | Uses variable-length encoding. | uint64 | long | +| {{< div id="sint32" content="sint32" >}} | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | +| {{< div id="sint64" content="sint64" >}} | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | +| {{< div id="fixed32" content="fixed32" >}} | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | +| {{< div id="fixed64" content="fixed64" >}} | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | +| {{< div id="sfixed32" content="sfixed32" >}} | Always four bytes. | int32 | int | +| {{< div id="sfixed64" content="sfixed64" >}} | Always eight bytes. | int64 | long | +| {{< div id="bool" content="bool" >}} | | bool | boolean | +| {{< div id="string" content="string" >}} | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | +| {{< div id="bytes" content="bytes" >}} | May contain any arbitrary sequence of bytes. | string | ByteString | + diff --git a/grpc_apis/ocis/messages/settings/v0/grpc.md b/grpc_apis/ocis/messages/settings/v0/grpc.md index c05a525a294..702b4bb1eae 100644 --- a/grpc_apis/ocis/messages/settings/v0/grpc.md +++ b/grpc_apis/ocis/messages/settings/v0/grpc.md @@ -1,7 +1,7 @@ --- title: "ocis.messages.settings.v0" url: /grpc_apis/ocis_messages_settings_v0 -date: 2022-05-02T16:18:37Z +date: 2022-05-02T17:29:10Z weight: 50 geekdocRepo: https://github.com/owncloud/ocis --- diff --git a/grpc_apis/ocis/messages/store/v0/grpc.md b/grpc_apis/ocis/messages/store/v0/grpc.md index 468ddc6f5ec..43a9f8451e7 100644 --- a/grpc_apis/ocis/messages/store/v0/grpc.md +++ b/grpc_apis/ocis/messages/store/v0/grpc.md @@ -1,7 +1,7 @@ --- title: "ocis.messages.store.v0" url: /grpc_apis/ocis_messages_store_v0 -date: 2022-05-02T16:18:37Z +date: 2022-05-02T17:29:10Z weight: 50 geekdocRepo: https://github.com/owncloud/ocis --- diff --git a/grpc_apis/ocis/messages/thumbnails/v0/grpc.md b/grpc_apis/ocis/messages/thumbnails/v0/grpc.md index dec3a50390d..e1b35211153 100644 --- a/grpc_apis/ocis/messages/thumbnails/v0/grpc.md +++ b/grpc_apis/ocis/messages/thumbnails/v0/grpc.md @@ -1,7 +1,7 @@ --- title: "ocis.messages.thumbnails.v0" url: /grpc_apis/ocis_messages_thumbnails_v0 -date: 2022-05-02T16:18:37Z +date: 2022-05-02T17:29:10Z weight: 50 geekdocRepo: https://github.com/owncloud/ocis --- diff --git a/grpc_apis/ocis/services/accounts/v0/grpc.md b/grpc_apis/ocis/services/accounts/v0/grpc.md index 8f1d017b8bf..9881a40504d 100644 --- a/grpc_apis/ocis/services/accounts/v0/grpc.md +++ b/grpc_apis/ocis/services/accounts/v0/grpc.md @@ -1,7 +1,7 @@ --- title: "ocis.services.accounts.v0" url: /grpc_apis/ocis_services_accounts_v0 -date: 2022-05-02T16:18:37Z +date: 2022-05-02T17:29:10Z weight: 50 geekdocRepo: https://github.com/owncloud/ocis --- diff --git a/grpc_apis/ocis/services/search/v0/grpc.md b/grpc_apis/ocis/services/search/v0/grpc.md new file mode 100644 index 00000000000..2108df1ebf8 --- /dev/null +++ b/grpc_apis/ocis/services/search/v0/grpc.md @@ -0,0 +1,105 @@ +--- +title: "ocis.services.search.v0" +url: /grpc_apis/ocis_services_search_v0 +date: 2022-05-02T17:29:10Z +weight: 50 +geekdocRepo: https://github.com/owncloud/ocis +--- + +{{< toc >}} + + + +## ocis/services/search/v0/search.proto + +### IndexSpaceRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| space_id | [string](#string) | | | +| user_id | [string](#string) | | | + +### IndexSpaceResponse + + + + +### SearchIndexRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| page_size | [int32](#int32) | | Optional. The maximum number of entries to return in the response | +| page_token | [string](#string) | | Optional. A pagination token returned from a previous call to `Get`
that indicates from where search should continue | +| query | [string](#string) | | | +| ref | [ocis.messages.search.v0.Reference](/grpc_apis/ocis_messages_search_v0/#reference) | | | + +### SearchIndexResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| matches | [ocis.messages.search.v0.Match](/grpc_apis/ocis_messages_search_v0/#match) | repeated | | +| next_page_token | [string](#string) | | Token to retrieve the next page of results, or empty if there are no
more results in the list | + +### SearchRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| page_size | [int32](#int32) | | Optional. The maximum number of entries to return in the response | +| page_token | [string](#string) | | Optional. A pagination token returned from a previous call to `Get`
that indicates from where search should continue | +| query | [string](#string) | | | + +### SearchResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| matches | [ocis.messages.search.v0.Match](/grpc_apis/ocis_messages_search_v0/#match) | repeated | | +| next_page_token | [string](#string) | | Token to retrieve the next page of results, or empty if there are no
more results in the list | + + +### IndexProvider + + + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Search | [SearchIndexRequest](#searchindexrequest) | [SearchIndexResponse](#searchindexresponse) | | + +### SearchProvider + + + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Search | [SearchRequest](#searchrequest) | [SearchResponse](#searchresponse) | | +| IndexSpace | [IndexSpaceRequest](#indexspacerequest) | [IndexSpaceResponse](#indexspaceresponse) | | + +## Scalar Value Types + +| .proto Type | Notes | C++ | Java | +| ----------- | ----- | --- | ---- | +| {{< div id="double" content="double" >}} | | double | double | +| {{< div id="float" content="float" >}} | | float | float | +| {{< div id="int32" content="int32" >}} | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | +| {{< div id="int64" content="int64" >}} | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | +| {{< div id="uint32" content="uint32" >}} | Uses variable-length encoding. | uint32 | int | +| {{< div id="uint64" content="uint64" >}} | Uses variable-length encoding. | uint64 | long | +| {{< div id="sint32" content="sint32" >}} | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | +| {{< div id="sint64" content="sint64" >}} | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | +| {{< div id="fixed32" content="fixed32" >}} | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | +| {{< div id="fixed64" content="fixed64" >}} | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | +| {{< div id="sfixed32" content="sfixed32" >}} | Always four bytes. | int32 | int | +| {{< div id="sfixed64" content="sfixed64" >}} | Always eight bytes. | int64 | long | +| {{< div id="bool" content="bool" >}} | | bool | boolean | +| {{< div id="string" content="string" >}} | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | +| {{< div id="bytes" content="bytes" >}} | May contain any arbitrary sequence of bytes. | string | ByteString | + diff --git a/grpc_apis/ocis/services/settings/v0/grpc.md b/grpc_apis/ocis/services/settings/v0/grpc.md index b4038e22b96..0546bc68349 100644 --- a/grpc_apis/ocis/services/settings/v0/grpc.md +++ b/grpc_apis/ocis/services/settings/v0/grpc.md @@ -1,7 +1,7 @@ --- title: "ocis.services.settings.v0" url: /grpc_apis/ocis_services_settings_v0 -date: 2022-05-02T16:18:37Z +date: 2022-05-02T17:29:10Z weight: 50 geekdocRepo: https://github.com/owncloud/ocis --- diff --git a/grpc_apis/ocis/services/store/v0/grpc.md b/grpc_apis/ocis/services/store/v0/grpc.md index bf53005e98a..b3a04244633 100644 --- a/grpc_apis/ocis/services/store/v0/grpc.md +++ b/grpc_apis/ocis/services/store/v0/grpc.md @@ -1,7 +1,7 @@ --- title: "ocis.services.store.v0" url: /grpc_apis/ocis_services_store_v0 -date: 2022-05-02T16:18:37Z +date: 2022-05-02T17:29:10Z weight: 50 geekdocRepo: https://github.com/owncloud/ocis --- diff --git a/grpc_apis/ocis/services/thumbnails/v0/grpc.md b/grpc_apis/ocis/services/thumbnails/v0/grpc.md index 1343458f4aa..87662f32561 100644 --- a/grpc_apis/ocis/services/thumbnails/v0/grpc.md +++ b/grpc_apis/ocis/services/thumbnails/v0/grpc.md @@ -1,7 +1,7 @@ --- title: "ocis.services.thumbnails.v0" url: /grpc_apis/ocis_services_thumbnails_v0 -date: 2022-05-02T16:18:37Z +date: 2022-05-02T17:29:10Z weight: 50 geekdocRepo: https://github.com/owncloud/ocis ---