Skip to content

Commit 0f58f00

Browse files
authored
Merge branch 'master' into patch-2
2 parents 7d62f3c + c53110a commit 0f58f00

File tree

191 files changed

+10263
-2529
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

191 files changed

+10263
-2529
lines changed

admin_manual/ai/app_context_agent.rst

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ App: Context Agent (context_agent)
66

77
The *context_agent* app is the app that provides AI agent functionality in Nextcloud and acts as a backend for the :ref:`Nextcloud Assistant app<ai-app-assistant>`. Nextcloud can provide customer support upon request, please talk to your account manager for the possibilities.
88

9-
When the Context Agent app is installed the AI Chat in Nextcloud Assistant will be able to interact with your Nextcloud apps via virtual integrations that are called "tools".
9+
When the Context Agent app is installed the AI Chat in Nextcloud Assistant will be able to interact with your Nextcloud apps via virtual integrations that are called "tools". They allow the Assistant to perform actions in your Nextcloud upon sending instructions in a chat message.
1010

1111
Currently implemented tools:
1212

@@ -26,6 +26,10 @@ Currently implemented tools:
2626

2727
* Example prompt: *"What is Andrew's Email address?"*
2828

29+
* Find the current user's details
30+
31+
* Example prompt: *"Where do I live?"*
32+
2933
* Ask a question to context chat
3034

3135
* Example prompt: *"What is the company's sick leave process?"*
@@ -46,6 +50,22 @@ Currently implemented tools:
4650

4751
* Example prompt: *"Can you send a joke to Andrew in talk?"*
4852

53+
* Create a deck card
54+
55+
* Example prompt: *"Create a deck card for 'Buy Groceries' in my Personal board."*
56+
57+
* Access information in deck boards
58+
59+
* Example prompt: *"Which deck cards are currently in the To do list in my Personal board?"*
60+
61+
* Create a task
62+
63+
* Example prompt: *"Create a task for 'Renovate flat' in my Personal calendar. The task should be due Monday next week."*
64+
65+
* Search for youtube videos
66+
67+
* Example prompt: *"Show me the youtube video of the Nextcloud hub 10 launch."*
68+
4969
* Send an email via Nextcloud Mail
5070

5171
* Example prompt *"Send a test email from [email protected] to [email protected] from my account with id 12"*
@@ -57,6 +77,10 @@ These tools can also be combined by the agent to fulfil tasks like the following
5777

5878
* Uses contacts to look up Andrew's address and then checks the weather
5979

80+
* *"How is the weather where I live?"*
81+
82+
* Look up the current user's address and then checks the weather
83+
6084
* *"Send an email from [email protected] to Andrew"*
6185

6286
* Uses contacts to look up Andrew's email and then sends an email
@@ -86,6 +110,7 @@ Model requirements
86110

87111
This app requires underlying Large language models to support tool calling. The default model in *llm2* does *not* support tool calling. Instead we recommend:
88112

113+
* Mistral 3 small 24B
89114
* Qwen 2.5 8B or higher (May not work well with languages other than English)
90115
* Watt Tool 8B or higher
91116

admin_manual/ai/app_context_chat.rst

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Requirements
2121
* Minimal Nextcloud version: 30
2222
* Nextcloud AIO is supported
2323
* We currently support NVIDIA GPUs and x86_64 CPUs
24+
* CPU that supports AVX and AVX2 instruction
2425
* CUDA >= v12.2 on your host system
2526
* GPU Setup Sizing
2627

@@ -72,9 +73,24 @@ Installation
7273
Initial loading of data
7374
-----------------------
7475

75-
| Context chat will automatically load user data into the Vector DB using background jobs.
76+
Auto-indexing
77+
~~~~~~~~~~~~~
78+
79+
| Context chat will automatically load user data into the Vector DB using asynchronous background jobs.
7680
| The initial loading of data can take a long time depending on the number of files and their size.
77-
| To speed up the asynchronous indexing or to stop it altogether, see the `Configuration Options (OCC)`_.
81+
82+
The indexing jobs are set up to run during the Nextcloud instance's maintenance window (typically during the night) only. If you have not set a maintenance window, indexing will run 24/7.
83+
84+
You can set up a background job worker explicitly for Context Chat to avoid slowing down normal background job operation on larger instances.
85+
86+
.. code-block::
87+
88+
php cron.php "OCA\\ContextChat\\BackgroundJobs\\IndexerJob" "OCA\\ContextChat\\BackgroundJobs\\ActionJob" "OCA\\ContextChat\\BackgroundJobs\\SubmitContentJob" "OCA\\ContextChat\\BackgroundJobs\\StorageCrawlJob" "OCA\\ContextChat\\BackgroundJobs\\InitialContentImportJob"
89+
90+
You can set this command to run every 15 minutes on weekends using cron for example.
91+
92+
Synchronous indexing
93+
~~~~~~~~~~~~~~~~~~~~
7894

7995
| To index all the files synchronously, use the following command:
8096
| Note: This does not interact with the auto-indexing feature and that list would remain unchanged. However, the indexed files would be skipped when the auto indexer runs.
@@ -83,6 +99,8 @@ Initial loading of data
8399
84100
occ context_chat:scan <user_id>
85101
102+
**Note**: The synchronous command could take several days to complete. On larger systems we thus recommend to use auto-indexing.
103+
86104
Scaling
87105
-------
88106

@@ -131,19 +149,19 @@ Configuration Options (OCC)
131149
132150
occ config:app:set context_chat auto_indexing --value=true --type=boolean
133151
134-
* ``indexing_batch_size`` integer (default: 100)
135-
The number of files to index per run of the indexer background job
152+
* ``indexing_batch_size`` integer (default: 5000)
153+
The number of files to index per run of the indexer background job (this is limited by `indexing_max_time`)
136154

137155
.. code-block::
138156
139157
occ config:app:set context_chat indexing_batch_size --value=100 --type=integer
140158
141-
* ``indexing_job_interval`` integer (default: 600)
159+
* ``indexing_job_interval`` integer (default: 1800)
142160
The interval at which the indexer jobs run in seconds
143161

144162
.. code-block::
145163
146-
occ config:app:set context_chat indexing_job_interval --value=600 --type=integer
164+
occ config:app:set context_chat indexing_job_interval --value=1800 --type=integer
147165
148166
* ``indexing_max_time`` integer (default: 1800)
149167
The number of seconds to index files for per run, regardless of batch size
@@ -152,13 +170,6 @@ Configuration Options (OCC)
152170
153171
occ config:app:set context_chat indexing_max_time --value=1800 --type=integer
154172
155-
* ``indexing_max_jobs_count`` integer (default: 3)
156-
The maximum number of Indexer jobs allowed to run at the same time
157-
158-
.. code-block::
159-
160-
occ config:app:set context_chat indexing_max_jobs_count --value=3 --type=integer
161-
162173
* ``request_timeout`` integer (default: 3000)
163174
Request timeout in seconds for all requests made to the Context chat backend (the external app in AppAPI).
164175
If a docker socket proxy is used, the ``TIMEOUT_SERVER`` environment variable should be set to a value higher than ``request_timeout``.

admin_manual/ai/app_llm2.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ Requirements
3838
* This app is built as an External App and thus depends on AppAPI v3.1.0 or higher
3939
* Nextcloud AIO is supported
4040
* We currently support NVIDIA GPUs and x86_64 CPUs
41+
* CPU that supports AVX and AVX2 instruction
4142
* CUDA >= v12.2 on your host system
4243
* GPU Sizing
4344

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
===============
2+
File conversion
3+
===============
4+
5+
In the majority of cases, it is recommended that either the Pandoc or :doc:`Nextcloud Office <../office/installation>` apps
6+
are enabled, as they provide the majority of file conversions available. Other apps may also
7+
support their own file conversions for other file types if more specific conversions are required.

admin_manual/configuration_files/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ File sharing and management
2020
previews_configuration
2121
file_versioning
2222
trashbin_configuration
23+
file_conversion

admin_manual/configuration_server/config_sample_php_parameters.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3280,7 +3280,7 @@ The maximum Nextcloud desktop client version that will be allowed to sync with
32803280
this server instance. All connections made from later clients will be denied
32813281
by the server.
32823282

3283-
Defaults to 99.99.99
3283+
Defaults to ``99.99.99``
32843284

32853285
localstorage.allowsymlinks
32863286
^^^^^^^^^^^^^^^^^^^^^^^^^^

admin_manual/desktop/envvars.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ The environment variables are:
88

99
- `OWNCLOUD_CHUNK_SIZE` (default: 5242880; 5 MiB) – Specifies the chunk size of uploaded files in bytes. Increasing this value may help with synchronization problems in certain configurations.
1010
- `OWNCLOUD_TIMEOUT` (default: 300 s) – The timeout for network connections in seconds.
11-
- `OWNCLOUD_CRITICAL_FREE_SPACE_BYTES` (default: 50\*1000\*1000 bytes) - The minimum disk space needed for operation. A fatal error is raised if less free space is available.
12-
- `OWNCLOUD_FREE_SPACE_BYTES` (default: 250\*1000\*1000 bytes) - Downloads that would reduce the free space below this value are skipped. More information available under the "Low Disk Space" section.
11+
- `OWNCLOUD_CRITICAL_FREE_SPACE_BYTES` (default: 512\*1000\*1000 bytes) - The minimum disk space needed for operation. A fatal error is raised if less free space is available.
12+
- `OWNCLOUD_FREE_SPACE_BYTES` (default: 1000\*1000\*1000 bytes) - Downloads that would reduce the free space below this value are skipped. More information available under the "Low Disk Space" section.
1313
- `OWNCLOUD_MAX_PARALLEL` (default: 6) - Maximum number of parallel jobs.
1414
- `OWNCLOUD_BLACKLIST_TIME_MIN` (default: 25 s) - Minimum timeout for blacklisted files.
1515
- `OWNCLOUD_BLACKLIST_TIME_MAX` (default: 24\*60\*60 s; one day) - Maximum timeout for blacklisted files.
@@ -19,6 +19,6 @@ Low Disk Space
1919

2020
When disk space is low the Nextcloud Client will be unable to synchronize all files. This section describes its behavior in a low disk space situation as well as the options that influence it.
2121

22-
1. Synchronization of a folder aborts entirely if the remaining disk space falls below 50 MB. This threshold can be adjusted with the ``OWNCLOUD_CRITICAL_FREE_SPACE_BYTES`` environment variable.
22+
1. Synchronization of a folder aborts entirely if the remaining disk space falls below 512 MB. This threshold can be adjusted with the ``OWNCLOUD_CRITICAL_FREE_SPACE_BYTES`` environment variable.
2323

24-
2. Downloads that would reduce the free disk space below 250 MB will be skipped or aborted. The download will be retried regularly and other synchronization is unaffected. This threshold can be adjusted with the ``OWNCLOUD_FREE_SPACE_BYTES`` environment variable.
24+
2. Downloads that would reduce the free disk space below 1 GB will be skipped or aborted. The download will be retried regularly and other synchronization is unaffected. This threshold can be adjusted with the ``OWNCLOUD_FREE_SPACE_BYTES`` environment variable.

admin_manual/installation/system_requirements.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ For best performance, stability and functionality we have documented some recomm
2222
| | - SUSE Linux Enterprise Server 15 |
2323
| | - openSUSE Leap 15.5 |
2424
| | - CentOS Stream |
25+
| | - Alpine Linux |
2526
+------------------+-----------------------------------------------------------------------+
2627
| Database | - MySQL 8.0 / **8.4** or MariaDB 10.6/ **10.11** (recommended) / 11.4 |
2728
| | - Oracle Database 11g, 18, 21, 23 |

admin_manual/office/example-ubuntu.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
====================================
2-
Installation example on Ubuntu 20.04
2+
Installation example on Ubuntu 24.04
33
====================================
44

55
Import signing keys:
@@ -14,7 +14,7 @@ Add repository:
1414

1515
.. code-block:: bash
1616
17-
sudo echo "deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2004 ./" > /etc/apt/sources.list.d/collaboraonline.sources
17+
sudo echo "Types: deb\nURIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-deb\nSuites: ./\nSigned-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg" > /etc/apt/sources.list.d/collaboraonline.sources
1818
1919
Install packages
2020
****************

admin_manual/webhook_listeners/index.rst

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,11 @@ If you would like to match events fired by a specific user, you can pass ``{ "us
3333

3434
If you would like to enforce multiple criteria, you can simply pass multiple properties ``{ "event.tableId": 42, "event.rowId": 3 }``
3535

36+
If you would like to match values partially, you can use regular expressions: ``{ "user.uid": "/admin_.*/"}`` will match any user whose user ID starts with ``admin_``. This can be especially useful for filesystem events for filtering by path: ``{ "event.node.path": "/^\\/.*\\/files\\/Special folder\\//"}`` will match files inside the ``Special folder`` of any user (Note especially, that the slashes in the path need to be escaped with two back-slashes, once because we're inside a json string and once because we're inside a regular expression).
37+
3638
You can also use additional comparison operators (``$eq, $ne, $gt, $gte, $lt, $lte, $in, $nin``) as well as logical operators (``$and, $or, $not, $nor``). For example use ``{ "time" : { "$lt": 1711971024 } }`` to accept only events prior to April 1st 2024 and ``{ "time" : { "$not": { "$lt": 1711971024 } } }`` to accept events after April 1st 2024.
3739

40+
3841
Speeding up webhook dispatch
3942
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4043

@@ -419,3 +422,19 @@ This is an exhaustive list of available events. It features the event ID and the
419422
"target": array{"id": string, "path": string}
420423
}
421424
}
425+
426+
* OCP\\SystemTag\\MapperEvent
427+
428+
.. code-block:: text
429+
430+
array {
431+
"user": array {"uid": string, "displayName": string},
432+
"time": int,
433+
"event": array{
434+
"class": string,
435+
'eventType' => 'OCP\SystemTag\ISystemTagObjectMapper::assignTags' | 'OCP\SystemTag\ISystemTagObjectMapper::unassignTags',
436+
'objectType' => string (e.g. 'files'),
437+
'objectId' => string,
438+
'tagIds' => int[],
439+
}
440+
}

admin_manual/windmill_workflows/index.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ you can run a flow named "Synchronize Hub Resource types with instance" in the W
7878

7979
You can create your own Nextcloud-related scripts by taking one of the existing ones as example.
8080
In a script, when sending a request to Nextcloud, make sure that the ``EX-APP-ID`` header is set to ``flow``.
81+
Your custom scripts can make requests to any endpoint of the
82+
`Nextcloud OCS API <https://docs.nextcloud.com/server/latest/developer_manual/_static/openapi.html>`_ .
8183

8284
All the scripts we provide have a set of common input parameters:
8385

@@ -126,3 +128,15 @@ Of course, you may also use any of the other scripts for sending messages availa
126128
Windmill has a default approval user interface at a specific URL, but it looks very technical.
127129
We recommend using the `approve_links <https://apps.nextcloud.com/apps/approve_links>`_ app
128130
which allows creating a beautiful temporary approval page with a custom message and approve and disapprove buttons.
131+
132+
FAQ
133+
---
134+
135+
Can I create a script?
136+
~~~~~~~~~~~~~~~~~~~~~~
137+
138+
If the Windmill Hub does not contain any script to perform the action you have in mind,
139+
you can take an existing Nextcloud script as example and create your own.
140+
Your custom scripts can make requests to any endpoint of the
141+
`Nextcloud OCS API <https://docs.nextcloud.com/server/latest/developer_manual/_static/openapi.html>`_ .
142+

conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
version_start = 29 # THIS IS THE OLDEST SUPPORTED VERSION NUMBER
4141

4242
# THIS IS THE VERSION THAT IS MAPPED TO https://docs.nextcloud.com/server/stable/
43-
version_stable = 30 # CHANGING IT MUST RESULT IN A CHANGE OF THE SYMLINK ON THE LIVE SERVER
43+
version_stable = 31 # CHANGING IT MUST RESULT IN A CHANGE OF THE SYMLINK ON THE LIVE SERVER
4444

4545
# Also search for "TODO ON RELEASE" in the rst files
4646

developer_manual/app_publishing_maintenance/app_upgrade_guide/upgrade_to_31.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ to check whether the current Files app instance is a public share or not, and if
5555
Added APIs
5656
^^^^^^^^^^
5757

58-
- TBD
58+
- If an app supports file conversion, it may now register an ``\OCP\Files\Conversion\ConversionProvider`` which will
59+
be called automatically based on the supported MIME types. An app may register as many of these as needed.
5960

6061
Changed APIs
6162
^^^^^^^^^^^^

0 commit comments

Comments
 (0)