Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(AppAPIService): encode query parameter array via http_build_query #423

Closed
wants to merge 14 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 7 additions & 8 deletions .github/workflows/tests-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ name: Tests - Deploy

on:
pull_request:
branches: [stable29]
push:
branches: [main]
branches: [stable29]
workflow_dispatch:

permissions:
Expand All @@ -25,8 +26,6 @@ jobs:
include:
- server-version: "stable29"
php-version: "8.2"
- server-version: "master"
php-version: "8.3"

services:
postgres:
Expand Down Expand Up @@ -155,7 +154,7 @@ jobs:
- name: Create container
run: |
docker network create master_bridge
docker run --net master_bridge --name nextcloud --rm -d -v /var/run/docker.sock:/var/run/docker.sock ${{ env.docker-image }}
docker run --net master_bridge --name nextcloud --rm -d -v /var/run/docker.sock:/var/run/docker.sock -e SERVER_BRANCH=stable29 ${{ env.docker-image }}
sudo chmod 766 /var/run/docker.sock
sleep 120s

Expand Down Expand Up @@ -235,7 +234,7 @@ jobs:
-e NC_HAPROXY_PASSWORD="some_secure_password" \
--net master_bridge --name nextcloud-appapi-dsp -h nextcloud-appapi-dsp \
--privileged -d ghcr.io/cloud-py-api/nextcloud-appapi-dsp:latest
docker run --net master_bridge --name nextcloud --rm -d ${{ env.docker-image }}
docker run --net master_bridge --name nextcloud --rm -d -e SERVER_BRANCH=stable29 ${{ env.docker-image }}
sleep 60s

- name: Install AppAPI
Expand Down Expand Up @@ -322,7 +321,7 @@ jobs:
-e EX_APPS_NET="ipv4@localhost" \
--net host --name nextcloud-appapi-dsp -h nextcloud-appapi-dsp \
--privileged -d ghcr.io/cloud-py-api/nextcloud-appapi-dsp:latest
docker run --net=bridge --name=nextcloud -p 8080:80 --rm -d ${{ env.docker-image }}
docker run --net=bridge --name=nextcloud -p 8080:80 -e SERVER_BRANCH=stable29 --rm -d ${{ env.docker-image }}
sleep 60s
hostname -I
docker exec nextcloud-appapi-dsp ip addr show | grep inet | awk '{print $2}' | cut -d/ -f1
Expand Down Expand Up @@ -542,7 +541,7 @@ jobs:

nc-host-network-host:
runs-on: ubuntu-22.04
name: NC In Host(network=host) • master • 🐘8.2
name: NC In Host(network=host) • stable29 • 🐘8.2

services:
postgres:
Expand All @@ -564,7 +563,7 @@ jobs:
with:
submodules: true
repository: nextcloud/server
ref: master
ref: stable29

- name: Checkout AppAPI
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/tests-special.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ name: Tests Special

on:
pull_request:
branches: [stable29]
push:
branches: [main]
branches: [stable29]
workflow_dispatch:

permissions:
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ name: Tests

on:
pull_request:
branches: [stable29]
push:
branches: [main]
branches: [stable29]
workflow_dispatch:

permissions:
Expand Down Expand Up @@ -33,8 +34,6 @@ jobs:
include:
- server-version: "stable29"
php-version: "8.2"
- server-version: "master"
php-version: "8.3"
env:
DATABASE_PGSQL: 1

Expand Down
2 changes: 2 additions & 0 deletions .tx/backport
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
main
stable30
stable29
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [3.2.1 - 2024-09-27]

Last release to pin Nextcloud versions. Since NC 30.0.1 AppAPI will be bundled with server.

### Changed

- Changed NC compatible versions (28, 29, 30.0.0)

## [3.2.0 - 2024-09-10]

### Added
Expand Down
4 changes: 2 additions & 2 deletions appinfo/info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ to join us in shaping a more versatile, stable, and secure app landscape.
*Your insights, suggestions, and contributions are invaluable to us.*

]]></description>
<version>3.2.0</version>
<version>3.2.1</version>
<licence>agpl</licence>
<author mail="[email protected]" homepage="https://github.com/andrey18106">Andrey Borysenko</author>
<author mail="[email protected]" homepage="https://github.com/bigcat88">Alexander Piskun</author>
Expand All @@ -63,7 +63,7 @@ to join us in shaping a more versatile, stable, and secure app landscape.
<screenshot>https://raw.githubusercontent.com/cloud-py-api/app_api/main/screenshots/app_api_4.png</screenshot>
<dependencies>
<php min-version="8.1"/>
<nextcloud min-version="28" max-version="31"/>
<nextcloud min-version="28" max-version="30.0.0"/>
</dependencies>
<background-jobs>
<job>OCA\AppAPI\BackgroundJob\ExAppInitStatusCheckJob</job>
Expand Down
28 changes: 14 additions & 14 deletions l10n/ar.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ OC.L10N.register(
"AppAPI authentication failed" : "فشل تصديق الهُويَّة في AppAPI",
"AppAPI ExApp notifier" : "مُنبِّه واجهة AppAPI التطبيق الخارجي ExApp",
"AppAPI" : "واجهة AppAPO",
"AI Integration Team" : "فريق مُكاملة الذكاء الاصطناعي",
"AI Integration Team" : "فريق تكامل الذكاء الاصطناعي",
"ExApps Settings" : "إعدادات التطبيقات الخارجية ExApps",
"Nextcloud AppAPI" : "واجهة تطبيقات نكست كلاود AppAPI",
"### Boost your Nextcloud with AppAPI and its specially designed applications.\n\n\nThe AppAPI is a project within the Nextcloud ecosystem designed to streamline and enhance the process of\napplication development, deployment, and management.\n\nIt introduces a new methodology that allows developers to create\napplications using a variety of programming languages, not limited to PHP, which was traditionally used in Nextcloud development.\n\n\n### List of applications that require AppAPI:\n\n- [talk_bot_ai_example](https://github.com/cloud-py-api/talk_bot_ai_example)\n- [upscaler_example](https://github.com/cloud-py-api/upscaler_example)\n- [image_to_text_example](https://github.com/cloud-py-api/file_to_text_example)\n- [ai_image_generator_bot](https://github.com/cloud-py-api/ai_image_generator_bot)\n- [SummarAI](https://github.com/nextcloud/sumupbot)\n\n_If you wish to develop an application, we will gladly help and assist you._\n\n### Support\n\nWe appreciate any support for this project:\n\n- ⭐ Star our work on GitHub\n- ❗ Create an Issue or feature request\n- 💁 Resolve an Issue and create a Pull Request\n- 🧑‍💻 Develop your own application using AppAPI\n\nWe are genuinely excited about the future of the AppAPI project and its potential to transform\nthe way applications are developed and experienced within Nextcloud.\n\nAs we embark on this journey, we warmly invite you - developers, thinkers, creators, and visionaries -\nto join us in shaping a more versatile, stable, and secure app landscape.\n\n*Your insights, suggestions, and contributions are invaluable to us.*" : "### عزّز نكست كلاود خاصّتك باستعمال AppAPI وتطبيقاته المصممة خصيصًا.\n\nAppAPI هو مشروع ضمن نظام نكست كلاود مصمم لتبسيط وتعزيز عملية تطوير التطبيقات ونشرها وإدارتها. \nيقدم منهجية جديدة تسمح للمطورين بإنشاء التطبيقات المبنية بأنواع متعددة من لغات البرمجة، لا تقتصر على PHP، والتي كانت تستخدم تقليديًا في تطوير نكست كلاود. \n\n### قائمة التطبيقات التي تتطلب AppAPI: \n\n- [talk_bot_ai_example] (https://github.com/cloud-py-api/talk_bot_ai_example)- [upscaler_example] (https://github.com/cloud-py-api/upscaler_example)- [image_to_text_example] (https://github.com/cloud-py-api/file_to_text_example)- [ai_image_generator_bot] (https://github.com/cloud-py-api/ai_image_generator_bot)- [SummarAI] (https://github.com/nextcloud/sumupbot)\nإذا كنت ترغب في تطوير تطبيق، فستسعدنا مساعدتك._ \n\n\n### الدعم \n\nنحن نقدر أي دعم لهذا المشروع؛ مثلاً عبر: \n- ⭐ التقييم الإيجابي لمشروعنا على GitHub\n- ❗ إنشاء مشكلة أو طلب ميزة\n- 💁 حل مشكلة وإنشاء طلب سحب pull request\n- 🧑‍💻 تطوير تطبيقك الخاص باستخدام AppAPI \n\nنحن متحمسون حقًا لمستقبل مشروع AppAPI وقدرته على تحسين طريقة تطوير التطبيقات وتجربتها داخل نكست كلاود. \nبينما نبدأ هذه الرحلة، ندعوكم بحرارة - أيها المطورون و الباحثون و المبدعون و أصحاب الرؤى - للانضمام إلينا في تشكيل مشهد تطبيقات أكثر تنوعًا واستقرارًا وأمانًا. \n\n*أفكارك واقتراحاتك ومساهماتك لا تقدر بثمن بالنسبة لنا.*",
Expand All @@ -30,7 +30,7 @@ OC.L10N.register(
"ExApp initialization process timeout after which AppAPI will mark it as failed" : "مُهلة بدء التطبيقات الخارجية ExApp حيث بعدها سيتعامل AppAPI معها كعملية فاشلة",
"ExApp init timeout" : "مهلة بدء التطبيقات الخارجية ExApp",
"ExApp container restart policy" : "سياسة إعادة تشغيل حاوية container التطبيقات الخارجية ExApp",
"Specify container restart policy, e.g. 'always' to ensure ExApp running after daemon server reboot" : "حدِّد سياسة إعادة تشغيل الحاوية. مثلاً: \"دائماً always\" تضمن تشغيل التطبيق الخارجي ExApp بعد إعادة تشغيل خادوم البرنامج الخفي ",
"Specify container restart policy, e.g. 'always' to ensure ExApp running after daemon server reboot" : "قم بتحديد سياسة إعادة تشغيل الحاوية. مثلاً: \"دائماً always\" تضمن تشغيل التطبيق الخارجي ExApp بعد إعادة تشغيل خادم البرنامج الخفي ",
"This settings changes are reflected only for newly created containers" : "التعديلات في هذا الإعداد تنعكس فقط على الحاويات المُنشأة حديثاً",
"External Apps management" : "إدارة التطبيقات الخارجية",
"Admin options saved" : "تمّ حفظ خيارات المشرف",
Expand All @@ -52,7 +52,7 @@ OC.L10N.register(
"This app is supported via your current Nextcloud subscription." : "هذا التطبيق مدعوم من خلال اشتراكك الحالي في نكست كلود.",
"Supported" : "مدعومٌ",
"Featured apps are developed by and within the community. They offer central functionality and are ready for production use." : "تم تطوير التطبيقات المميزة من قبل المجتمع وداخله. و هي توفر وظائف مركزية وجاهزة للعمل في بيئة العمل الفعلية.",
"Featured" : "مُميّزةٌ",
"Featured" : "مميزة",
"Update to {update}" : "التحديث إلى {update}",
"All ExApps are up-to-date." : "جميع التطبيقات الخارجية مُحدّثة حتى آخر إصدار.",
"Default Deploy daemon is not accessible" : "الوصول إلى البرنامج الخفي التلقائي لنشر التطبيقات Default Deploy Daemon غير ممكن.",
Expand Down Expand Up @@ -95,7 +95,7 @@ OC.L10N.register(
"Compute device" : "إحسب الجهاز",
"Additional options" : "خيارات إضافية",
"Verify connection" : "تحقّق من الاتصال",
"Daemon connection successful" : "تمّ الاتصال بنجاحٍ مع البرنامج الخفي",
"Daemon connection successful" : "تمّ الاتصال بنجاح مع برنامج الخادم الخفي",
"Failed to connect to Daemon. Check the logs" : "تعذّر الاتصال مع البرنامج الخفي",
"Failed to check connection to Daemon. Check the logs" : "تعذّر اختبار الاتصال مع البرنامج الخفي. راجع سجل الحركات",
"Registered Deploy daemons list" : "قائمة برامج النشر الخفية المسجلة",
Expand Down Expand Up @@ -123,15 +123,15 @@ OC.L10N.register(
"Enabled" : "مُفعّل",
"Check if ExApp successfully handled the enabled event and registered all stuff properly" : "التحقُّق مما إذا كان ExApp قد نجح في التعامل مع الحدث المُمكّن و قد تمّ تسجيل كل شيءٍ بالشكل الصحيح",
"Only if ExApp container is preset" : "فقط إذا كانت حاوية التطبيق الخارجي ExApp مُعدَّةٌ مُسبقاً",
"Deploy test passed successfully!" : "النشر التجريبي تمّ اجتيازه بنجاحٍ",
"Deploy test passed successfully!" : "النشر التجريبي تمّ اجتيازه بنجاح",
"Deploy test failed at step \"{step}\"" : "النشر التجريبي أخفق و توقف في الخطوة \"{step}\"",
"Edit Deploy Daemon" : "تحرير برنامج النشر الخفي",
"Register Deploy Daemon" : "تسجيل برنامج خفي للنشر",
"Daemon configuration template" : "قالب تهيئة برنامج خفي",
"Select daemon configuration template" : "إختَر قالب تهيئة البرنامج الخفي",
"Daemon registration form" : "نموذج تهيئة برنامج خفي",
"Unique Deploy Daemon Name" : "الاسم الفريد للبرنامج الخفي للنشر",
"Display name" : "الاسم المعروض",
"Display name" : "اسم العرض",
"Deployment method" : "طُرُق النشر",
"Select daemon deploy method" : "إختَر طريقة نشر البرنامج الخفي",
"Daemon host" : "مُضِيف البرنامج الخفي",
Expand All @@ -147,9 +147,9 @@ OC.L10N.register(
"Add additional option" : "إضِف خياراً إضافيّاً",
"Option key (unique)" : "مفتاح الخيار (غير متكرر)",
"Option key (unique, e.g. my_key)" : "مفتاح الخيار (غير متكرر؛ مثل: my_key )",
"Option key is required" : "مفتاح الخيار لازم",
"Option key is required" : "مفتاح الخيار مطلوب",
"Option value" : "قيمة الخيار",
"Option value is required" : "قيمة الخيار لازمة",
"Option value is required" : "قيمة الخيار مطلوبة",
"Confirm" : "تأكيد",
"Save" : "حفظ",
"Register" : "تسجيل",
Expand All @@ -163,9 +163,9 @@ OC.L10N.register(
"URL should start with http:// or https://" : "عناوين الوب يجب أن تبدأ بـ http:// أو بـ https://",
"For HTTPS daemon, Nextcloud URL should be HTTPS" : "بالنسبة للبرنامج الخفي لـ HTTPS، عنوان URL لنكست كلاود يجب أن يكون HTTPS",
"All available GPU devices on daemon host will be requested to be enabled in ExApp containers by Docker." : "كل وحدات المعالجة الرسومية GPU على مُضيف البرنامج الخفي سيتم طلب تمكينها في حاويات التطبيقات الخارجية ExApp من قِبَل \"دوكر\" Docker. ",
"DaemonConfig successfully registered" : "تمّ بنجاحٍ تسجيل إعداد لبرنامج خفي DaemonConfig",
"DaemonConfig successfully registered" : "تمّ بنجاح تسجيل إعداد لبرنامج الخادم خفي DaemonConfig",
"Failed to register DaemonConfig. Check the logs" : "تعذّر تسجيل إعداد لبرنامج خفي DaemonConfig. راجع سجل الحركات",
"DaemonConfig successfully updated" : "تمّ تحديث DaemonConfig بنجاحٍ",
"DaemonConfig successfully updated" : "تمّ تحديث DaemonConfig بنجاح",
"Failed to update DaemonConfig. Check the logs" : "تعذّر تحديث DaemonConfig. تحقَّق من سجل الحركات.",
"Your apps" : "تطبيقاتك",
"Documentation" : "توثيق النظام",
Expand All @@ -175,7 +175,7 @@ OC.L10N.register(
"Active apps" : "التطبيقات النشطة",
"Disabled apps" : "التطبيقات المعطلة",
"Updates" : "التحديثات",
"Featured apps" : "تطبيقات مُميّزة",
"Featured apps" : "تطبيقات مميزة",
"Supported apps" : "التطبيقات المدعومة",
"manual-install apps cannot be updated" : "التطبيقات المثبية يدويّاً لا يمكن تحديثها",
"{progress}% Deploying" : "{progress}% في طور النشر",
Expand All @@ -187,10 +187,10 @@ OC.L10N.register(
"Allow untested app" : "إسمَح للتطبيقات غير المُجازة untested app",
"Default Deploy daemon is not accessible. Please verify configuration" : "لا يمكن الوصول إلى البرنامج الخفي التلقائي لنشر التطبيقات. راجع التهيئة من فضلك",
"The app will be downloaded from the App Store and deployed on default Deploy Daemon" : "سيتم تنزيل التطبيق من متجر التطبيقات و سيتم نشره على البرنامج الخفي التلقائي للنشر",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "لم يتم التعرّف على هذا التطبيق باعتباره متوافقاً مع إصدار نكست كلاود خاصّتك. إذا تابعت، فسيظل بإمكانك تنصيب التطبيق. ولكن يجب ملاحظة أن التطبيق قد لا يعمل بالشكل المتوقع.",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "لم يتم التعرّف على هذا التطبيق باعتباره متوافقاً مع إصدار نكست كلاود الخاص بك. إذا تابعت، فسيظل بإمكانك تنصيب التطبيق. ولكن يجب ملاحظة أن التطبيق قد لا يعمل بالشكل المتوقع.",
"Your ExApps" : "تطبيقاتك الخارجية",
"An error occurred during the request. Unable to proceed." : "حدث خطأ أثناء الطلب. الاستمرار غير ممكنٍ.",
"An error occurred during the request. Unable to proceed." : "حدث خطأ أثناء الطلب. لا يمكن الاستمرار.",
"The app has been enabled but needs to be updated." : "هذا البرنامج سبق تمكينه لكنه بحاجة إلى تحديث.",
"Error: This app cannot be enabled because it makes the server unstable" : "خطأ: لا يمكن تمكين هذا التطبيق لأنه يجعل الخادوم غير مستقر"
"Error: This app cannot be enabled because it makes the server unstable" : "خطأ: لا يمكن تمكين هذا التطبيق لأنه يجعل الخادم غير مستقر"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
Loading
Loading