84 Commits

Author SHA1 Message Date
819f104199 feat: add support for sensitive settings values encryption
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2025-05-29 17:07:06 +03:00
2a178d10b1 chore: removed FileEventsListener in favor of webhooks_listener feature.
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
2025-04-14 15:27:18 +03:00
e09308b864 (chore): removed deprecated Speech, Tanslate and TextProcessing AI providers
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
2025-03-25 08:40:59 +02:00
e27b687ddf feat: Advanced deploy options
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2025-01-20 19:23:27 +02:00
fabc729634 fix: add more space to taskprocessing columns
Signed-off-by: Anupam Kumar <kyteinsky@gmail.com>
2025-01-09 21:59:51 +05:30
c5f3d6a764 docs(reuse): Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-12-18 08:40:54 +01:00
d85b82fb45 Fix migration for postgres support. (#456)
Fix https://github.com/nextcloud/app_api/issues/457

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2024-11-29 14:37:49 +01:00
51714417bc keep "haproxy_password" encrypted in the database
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
2024-11-20 18:26:32 +03:00
575b3d4f74 removed not used last_check_time field (#375)
Also drops no longer used field `api_scopes` from the DB

Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2024-09-05 14:29:38 +03:00
eda9c80ab6 ability to enable bruteforce protection for ExApp routes (#368)
```xml
<route>
	<url>^api\/w\/nextcloud\/jobs\/.*</url>
	<verb>GET,POST,PUT,DELETE</verb>
	<access_level>PUBLIC</access_level>
	<headers_to_exclude>[]</headers_to_exclude>
	<bruteforce_protection>[401, 500]</bruteforce_protection>
</route>
```

Looks like this. ExApps should not implement its own protection, we
should provide a way to enable basic protection from Nextcloud/AppAPI
side.

---------

Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Co-authored-by: Andrey Borysenko <andrey18106x@gmail.com>
2024-08-22 19:25:40 +00:00
c054c4c2ac feat: Add enum and default value support in task processing (#359)
All related PRs:
https://github.com/cloud-py-api/nc_py_api/pull/284
https://github.com/cloud-py-api/app_api/pull/359
https://github.com/nextcloud/translate2/pull/11

Signed-off-by: Anupam Kumar <kyteinsky@gmail.com>
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
2024-08-12 09:32:16 +00:00
7082ccb278 enh(docs): docs updates (#333)
Docs updates with known FAQ (will be updated with time) and some Notes
for Developers as an overview or replacement of old parts of docs in
future.

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2024-08-02 16:36:18 +00:00
65003cd5d1 ExApp routes (public/user/admin) support (#327)
This PR introduces new (mandatory if you use the ExApp proxy) registration of the routes that are allowed to call on ExApp via AppAPI ExApp proxy.

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
2024-08-02 16:47:06 +03:00
636d7b873f feat(TaskProcessing): Allow defining custom task types (#324)
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
2024-07-14 09:07:55 +02:00
eea14dc504 optimization: system flag and ex_app_users removal (#323)
The system flag and extra table for that `ex_app_users` is removed to
optimize database usage and simplify the system logic.

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2024-07-11 17:08:52 +00:00
15db25c7db feat: Add task processing API (#294)
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
2024-07-05 19:50:28 +02:00
139e79312f feat: file actions redirect, v2 api version (#284)
This PR introduces a simple File Actions menu redirect option to open
ExApp UI page with the context of selected files.

Resolves: #136

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
2024-05-08 12:20:46 +00:00
3d503b3403 drop ExApp scopes table, rewrite code of it (#285)
This is ongoing part of optimizations of reducing the number of
database/cache requests.

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
2024-05-07 10:50:51 +03:00
3bf5132211 feat: Test deploy feature (#279)
This PR introduces a "Test deploy" button for each Daemon configuration
to verify each step and identify the error.

Resolves: https://github.com/cloud-py-api/app_api/issues/174

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
2024-04-29 13:36:32 +03:00
3b06bd789f fix(occ): incorrect type of field in ExAppOccCommand (#278)
Should fix incorrect type handling by different DBMS during ExApp occ
command registration.

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2024-04-23 21:12:15 +03:00
052e3a000c ExApp occ commands API (#272)
This PR introduces API for registering OCC commands for ExApps.

Note: **Passing file contents as the input argument is not supported**

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
2024-04-19 10:15:22 +00:00
9fb115bca6 Admin options adjustments (different compute devices support) (#267)
Minor fixes, adjusted Admin settings UI and backend part with optional
compute device (NVIDIA/ADM/CPU) daemon configuration.

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2024-04-09 16:06:42 +03:00
36c2db5835 removed "ex_apps_api_scopes" table (#262)
We hold pre-defined API Scopes in memory only.

Anyway we currently do not supporting defining API Scopes at runtime and
not sure that we will in future, so better to make it simpler and faster
for now.

---------

Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2024-04-04 12:05:23 +03:00
46a51fc637 EventsListener API (#259)
Node Events
***********

``node_event`` - events about File `Nodes`

Supported event sub-types:

* NodeCreatedEvent
* NodeTouchedEvent
* NodeWrittenEvent
* NodeDeletedEvent
* NodeRenamedEvent
* NodeCopiedEvent

Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2024-04-02 11:09:09 +03:00
f7eefb801b performance: store API scopes as a list in the main table (#254)
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2024-03-27 19:24:34 +03:00
1abe49909b made the "system" flag much cleaner (#237)
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2024-02-21 16:52:19 +03:00
2327360e8f feat(MachineTranslation): Add optional IDetectLanguageProvider implementation (#232)
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2024-02-17 18:06:23 +00:00
5e492fb4d9 Declarative Settings API (#149)
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
Co-authored-by: Alexander Piskun <bigcat88@icloud.com>
2024-02-11 14:48:02 +03:00
003794670a Daemon Templates, Docker Socket Proxy, AppAPI 2.0 (#212) 2024-01-25 12:33:48 +00:00
319a543875 MachineTranslation (#210)
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
Co-authored-by: Alexander Piskun <bigcat88@icloud.com>
2024-01-14 17:21:20 +00:00
a44f8c4624 Refactor Speech2Text Provider flow (#209)
The same as in #208 but for SpeechToText Provider
2024-01-12 16:41:42 +03:00
3993830a7d rework of TextProcessing Provider API (#208)
Ref: #204

Changed:
* added new table `ex_text_processing_q` and TextProcessing queue in
AppAPI
* added `reportResult` route, allowing storing results from ExApp
provider
* API for ExApp TextProcessing provider implementation
2024-01-11 19:30:42 +00:00
db2a3cf8c8 Text-Processing APIs implementation (#191)
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Co-authored-by: Alexander Piskun <bigcat88@icloud.com>
2024-01-01 21:20:17 +00:00
08ecfebd8b Speech-To-Text API implementation with custom ProviderID using anonymous classes (#184)
Speech-To-Text API implementation using dynamic registration with
anonymous classes and custom provider ID
(https://github.com/nextcloud/server/blob/master/lib/public/SpeechToText/ISpeechToTextProviderWithId.php)

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Co-authored-by: Alexander Piskun <bigcat88@icloud.com>
2023-12-31 16:07:11 +03:00
b07f053c2a v1.4.0 Change log update (#142)
We do not merge this until v1.4 is fully ready, just update it to not
forget what we added in this release.

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Co-authored-by: Andrey Borysenko <andrey18106x@gmail.com>
2023-12-06 19:29:32 +03:00
3c6a3fe997 Add support of multiple mimes in File Actions (#144)
Resolves: #95

- [x] Add support of multiple mimes in filesplugin
- [x] Rename UI tables for naming consistency

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2023-12-05 20:52:04 +03:00
86ae7439c1 UI: FileActions rework (#141)
* changed type of `order` to int in model

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Co-authored-by: Andrey Borysenko <andrey18106x@gmail.com>
2023-12-05 17:45:38 +03:00
42cc56de56 ExApp UI Adjustments (Part2) (#137)
Changes proposed in this PR(first part is here #135):

CI:

* added Oracle CI test, as previous PR created a new error with Oracle
DB due to missing tests
* TopMenu: icon_url -> icon

Bugs:

* do not spam error into log file in **getExAppFileAction**,
**getExAppMenuEntry**
* Oracle fix for FileAction entry
2023-12-03 23:19:27 +03:00
50277224d3 ExApp UI Implementation (Part1) (#135)
This PR adds ability for ExApp to have entry in TopMenu and provide it's
own page when clicking on it.

* OCS API for specifying InitialStates, Scripts, Styles, TopMenu
* Small corrections and refactoring of code that relates on UI
* Small bug fixes to other parts of AppAPI, mostly for FileActions Menu.

PR is ready, after merging this, one additional PR will be created that
relates to this one.
That PR will cover missing parts:
* Docs, changelog update
* FileActions Menu rework(icon specifying)
* Fixes of stuff that will be found if any, related to UI
* CI Actions and Makefile adjusting, to keep `js/proxy_js` folder
* Fix of Proxying stuff

Merging this PR will allow nc_py_api's PR to be finished on this theme
and finish first example for testing.

---------

Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Co-authored-by: Andrey Borysenko <andrey18106x@gmail.com>
2023-12-03 16:30:03 +03:00
183c01b4a9 change field to type 'TEXT' (no migration) (#120)
Resolves: https://github.com/cloud-py-api/app_api/issues/116


For some reason it was not possible to do this by migration(I tried but
got `tinytext` instead of `text`), but this is not particularly
important, since this is more of a change for the future.

Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2023-11-22 19:31:03 +03:00
86e67f1918 Support of Mysql database (#101)
Related to #94

Currently only added a single test with MySQL

---------

Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2023-10-23 13:26:54 +03:00
8017dba784 UI implementation(appstore, daemons) (#77)
- [ ] polish
- [ ] update docs with screenshots

---------

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
Co-authored-by: Alexander Piskun <bigcat88@icloud.com>
Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com>
2023-10-02 20:55:33 +03:00
8b3f129143 app_ecosystem_v2 to app_api renaming(1) (#68)
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2023-09-11 12:42:34 +03:00
8e94d8a411 small general adjustments for AIO compatibility (#63)
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2023-09-04 12:24:38 +03:00
55cd51662c added talk bots registration api (#53)
- [x] Adds Talk bot registration api
- [x] Adds `user_check` flag to ApiScope and adjusts AppEcosystemAuth
logic to check user if flag is set (true by default), this is required
for BASIC and TALK_BOT scopes, as they work without user context.
2023-08-24 12:58:55 +03:00
1aec083e96 FileActionsMenu docs draft (#31) 2023-08-09 19:02:09 +03:00
0a6b653bfa Project updates (#19)
Changes:

- [x] Removed license comments from the beginning of files
- [x] Added LICENSE-README and AUTHORS
- [x] Added Notifications API draft
- [x] Updated Readme
- [x] Updated docs (authentication, development)
- [x] Added app icon license
- [x] Added issue templates
2023-07-24 23:13:04 +03:00
3ff978e660 Caching adjustments. Refactoring, use service layers with caching (#14)
Changes:

- [x] removed last_response_time and related functions
- [x] renamed last_response_time->last_check_time usage (getExApps) in
nc_py_api @bigcat88
- [x] added docker container healthcheck before heartbeat exApp in
deployment process @andrey18106
- [x] added php lint, cs, psalm, security cheks ci @andrey18106 
- [x] reviewed caches usage
- [x] reviewed exception handling and logging
- [x] added ci for tests with redis
- [x] php-cs fixes

---------

Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
Co-authored-by: Alexander Piskun <bigcat88@icloud.com>
2023-07-22 14:05:17 +03:00
0d64fb2e35 DB changes. Added unique name for daemon config to use it instead of ID (#10)
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
Co-authored-by: Alexander Piskun <bigcat88@icloud.com>
2023-07-13 21:10:21 +03:00
d751941bd5 added support for docker by port (#7) 2023-07-12 22:44:55 +03:00