1
0
mirror of https://github.com/owncloud/ocis.git synced 2026-10-23 23:29:02 +03:00
Commit Graph

50 Commits

Author SHA1 Message Date
Lukas Hirt
6bad03d364 [full-ci] chore: [OCISDEV-5] merge and relicense ownCloud Web into oCIS (#12491)
* chore: [OCISDEV-5] Merge and relicense ownCloud Web into oCIS

Consolidate the ownCloud Web frontend into this repository as a single
product with one contribution surface and one license. The web/ source
is imported as-is from the final standalone owncloud/web release
(v12.5.0 / last-agpl-release @ b16a34fdf5569d2fd63b1ff3c575c1a4ee569ad3);
the archived owncloud/web repository remains the historical record for
everything at and before that commit.

Relicensing:
- All web/ contributors have signed the ownCloud CLA, granting ownCloud
  GmbH the right to relicense their contributions.
- web/LICENSE (AGPL-3.0) removed; the repository root LICENSE
  (Apache-2.0) now governs web/ as well, matching how the rest of the
  repo is already licensed.
- All 25 web/packages/*/package.json license fields flipped to
  Apache-2.0; root NOTICE added documenting the relicensing provenance.
- Added REUSE.toml + LICENSES/ so the whole repository (including
  vendored Go dependencies) is REUSE 3.3 compliant.

CI/build:
- services/web/Makefile now builds web assets from the in-tree source
  instead of downloading a release tarball from owncloud/web; license
  checking/saving likewise runs against the in-tree source.
- ci.env and tests/acceptance/run-e2e.py no longer clone owncloud/web
  for Playwright e2e tests.
- Added the app-provider and ocm e2e suites to acceptance-tests.yml's
  matrix, closing a coverage gap where they were silently excluded;
  ported the Collabora/OnlyOffice/federated-instance orchestration
  web's old CI used to run them.
- Added web-tests.yml (typecheck/format/lint/unit-test), a
  check-licenses.yml, commit-message.yml, and release-npm-packages.yml
  for the @ownclouders/* packages, replacing web's old standalone CI.
- Removed dead CI tooling inherited from the standalone repo
  (web/tests/drone, web/tests/actions, web/.github, and an orphaned
  ci.env-dependent cache-check script).

Docs:
- Rewrote docs/services/web/releasing.md and web/docs/releasing to
  describe the in-tree build/release process.
- Updated remaining references to github.com/owncloud/web across docs,
  services/web/README.md, and the deployment example to point at the
  in-tree web/ directory.

Signed-off-by: Lukas Hirt <info@hirt.cz>

* ci: sync web/ translations via Transifex

web/ is a pnpm workspace nested inside the repo, so it isn't covered by
the existing translation-sync job (sub_path: ., no package.json at the
repo root). Add a second sync-web job invoking the same reusable
workflow with sub_path: web and package_manager: pnpm, so its l10n-read/
push/pull/write targets actually install web's dependencies instead of
silently running against an empty node_modules. Sequenced after the
existing sync job since both push to the same hardcoded
chore/translations-update branch.

* ci: fix pnpm cache setup order in web-tests and check-licenses

actions/setup-node's cache: pnpm input shells out to pnpm to resolve
the cache directory, so pnpm must already be on PATH when that step
runs. Both workflows ran `corepack enable` *after* setup-node, which
still failed: corepack writes its pnpm shim into the currently active
Node installation's bin dir, and setup-node had already swapped PATH
to the newly-installed Node version by that point, leaving the shim
behind. Use pnpm/action-setup instead, which installs a standalone
pnpm binary independent of the Node version, before setup-node runs.

Also set cache-dependency-path explicitly: the lockfile lives at
web/pnpm-lock.yaml, and cache-dependency-path resolves relative to
GITHUB_WORKSPACE regardless of the job's working-directory default
(that default only applies to run: steps, not to setup-node itself).

* fix(web): resolve 19 HIGH trivy findings in pnpm-lock.yaml

All 19 findings had fixes available upstream, so per this repo's own
.trivyignore policy (reserved for cases with no fix available), these
get fixed rather than suppressed.

vite (7.3.2 -> 7.3.5) is a direct dependency, bumped directly in every
package.json that pins it.

The other 8 (@xmldom/xmldom, flatted, form-data, immutable, js-cookie,
linkify-it, minimatch, ws) are purely transitive. Verified empirically
that `pnpm update <pkg>` silently no-ops on packages not declared in
any workspace manifest, even when a parent's semver range would allow
the fix (e.g. glob@10.5.0's `^9.0.4` covers 9.0.7) -- so pnpm.overrides
is genuinely required here, not just convenient.

minimatch is overridden with a version-range key
(minimatch@>=9.0.0 <9.0.7) rather than a blanket override, since 6
different major versions of minimatch coexist in the tree for
different consumers (3.x/5.x/10.x elsewhere); a blanket override would
have forced all of them to 9.0.7 and likely broken callers expecting a
different major's API.

* fix(web): unify @types/node resolution to stop duplicate vite types

The previous vite 7.3.2 -> 7.3.5 bump caused pnpm to resolve two
different @types/node versions (25.7.0 and 26.1.0) as vite's optional
peer across different workspace packages. vue-tsc then saw two
structurally-different copies of vite's types (e.g. Plugin, HotUpdateOptions)
and failed with TS2769 in design-system, web-client, web-pkg and
web-test-helpers' vite.config.ts files.

Force a single resolution via pnpm.overrides, pinned to 24.13.2 to
match the Node 24 runtime (engines/volta) rather than an arbitrary
newer major.

* fix(tests): fix ocm/app-provider e2e suites' oCIS orchestration

Both suites were newly wired up by the previous merge-web-repo commit
and hadn't run against real CI yet, so their setup had two latent bugs:

e2e-ocm: the federated instance's env only offset *_DEBUG_ADDR ports,
leaving the actual service ports (e.g. gateway's default
127.0.0.1:9142) unset. The federated "ocis server" process then
crashed trying to bind the same ports the primary instance already
held. run-github.py's Behat apiOcm suite already solved this with a
canonical tests/config/local/.env-federation port map (proven working,
since apiOcm passes) -- reuse it instead of the ad-hoc offset. Also
adds OCIS_ADD_RUN_SERVICES=ocm/OCIS_ENABLE_OCM, missing from the
primary instance too.

e2e-app-provider: tests/config/ci/app-registry.yaml maps its one
mimetype to "FakeOffice" (the stub used by apiCollaboration) and has
no docx entry at all, so the real Collabora/OnlyOffice containers this
suite drives never appeared in the web UI's "New file" menu. Add a
dedicated app-registry mapping both odt->Collabora and docx->OnlyOffice
with allow_creation, and use it only when COLLABORATION_NEEDED is set.

Signed-off-by: Lukas Hirt <info@hirt.cz>

* fix(tests): trust federated oCIS cert, register office templates by target_ext

e2e-ocm: the primary and federated instances each generate their own
self-signed proxy cert. Only the primary's was ever added to the
system CA trust store, so Chromium refused the federated instance's
TLS handshake ("tls: unknown certificate") once federation began.
Trust the federated cert too, and thread OCIS_BASE_DATA_PATH through
its `ocis init` call (previously only set for the running server),
since that's where the cert actually gets written.

e2e-app-provider: reproduced the suite locally (real Collabora/
OnlyOffice containers + `ocis collaboration server`) and diffed
`/app/list` before/after. allow_creation and default_app alone don't
make the web UI's "New file" menu show an entry -- it additionally
requires app_providers[].target_ext, which reva's app-provider only
stamps onto a hardcoded set of "-template" mimetypes
(vendor/github.com/owncloud/reva/v2/.../appprovider/templates.go), not
the plain document mimetypes the previous config used. Existing odt/
docx files still open fine without a static entry, since Collabora/
OnlyOffice register their full supported mimetype list dynamically via
WOPI discovery -- it's specifically file *creation* that needs this.

Signed-off-by: Lukas Hirt <info@hirt.cz>

* fix(changelog): shorten title over the 80-char lint limit

changelog/unreleased/bugfix-personal-space-fail-closed.md landed on
master (#12442) with a 97-char title, which changelog-lint rejects.
GitHub tests PRs against a merge with the current master tip, so this
started failing build-and-test on every open PR once master picked up
that commit -- unrelated to this branch's own changes. Fixing it here
since master needed to be merged in anyway.

* fix(tests): load web apps the ocm/app-provider e2e suites depend on

Both suites drive the web UI, and web only loads the web apps listed in
its UI config's "apps" array. run-e2e.py reuses
tests/config/ci/ocis-config.json, which predates the playwright suites
and lists neither app they need, so both failed deterministically while
the API-only Behat suites (apiOcm, apiCollaboration) kept passing:

e2e-ocm: the "open-cloud-mesh" app menu item can never render because
"ocm" was missing, so web-app-ocm was never loaded. Add it for the
federated suite. Behind that sat a second bug: the invite flow embeds
token@<BASE_URL_OCIS host> (127.0.0.1:9200) into invite codes, but the
federated instance authorizes providers against
tests/config/local/providers.json, which only lists localhost:9200.
Address the primary as https://localhost:9200 when federated, mirroring
run-github.py's passing apiOcm setup (the self-signed cert covers both
hosts; other suites keep 127.0.0.1).

e2e-app-provider: web-runtime only builds the per-provider Collabora/
OnlyOffice editor apps -- including their "New file" menu entries --
when web-app-external is loaded (web/packages/web-runtime/src/index.ts
gates on applicationStore.has('web-app-external')), and "external" was
missing. This also falsifies the previous target_ext theory: the
template-mimetype registry was active in the failing run and the menu
still never appeared, because the New-file menu needs only
allow_creation plus a registered provider
(web-app-external/src/index.ts). Revert the app registry to the plain
odt->Collabora / docx->OnlyOffice mimetypes web's own e2e CI proved out
(web/dev/docker/ocis/app-registry.yaml). Create-from-template still
works without static entries: reva stamps target_ext onto the -template
mimetypes the providers register via WOPI discovery.

Signed-off-by: Lukas Hirt <info@hirt.cz>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* ci: upload playwright traces and a11y report from e2e suites

Port the two upload-artifact steps the standalone web repo's e2e
workflow had: playwright error contexts/report output on failure, and
the a11y report on any non-cancelled run. Paths are prefixed with web/
since the web repo now lives in that subdirectory, artifact names use
the suite name instead of the job index, and the action pin matches the
one already used in this workflow.

Signed-off-by: Lukas Hirt <info@hirt.cz>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(tests): allow office editor iframes in the e2e proxy CSP

The app-provider suite got past file creation but every office test
then timed out waiting for the editor to render: ocis's default proxy
CSP only allows frame-src 'self' (exact scheme+host+port), so the
browser refused to embed the Collabora/OnlyOffice iframes served on
other ports. The COLLABORA_DOMAIN/ONLYOFFICE_DOMAIN env vars do nothing
on their own -- they are only substituted into a custom CSP file, which
is why the pre-merge web CI always set PROXY_CSP_CONFIG_FILE_LOCATION
(tests/drone/csp.yaml there). The localStorage SecurityError seen in
the logs was a downstream symptom: the CSP-blocked frame ends up with
an opaque origin where storage access throws.

Add the two editor domains to tests/config/ci/csp.yaml's frame-src and
img-src (mirroring web's proven csp.yaml) and point the collaboration
suite at it. The keycloak suite shares this file; for it the new
entries fall back to nonexistent default hosts and are inert.

Signed-off-by: Lukas Hirt <info@hirt.cz>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(licenses): attribute REUSE.toml copyright to ownCloud contributors

The web/ tree carries community contributions dating back to 2016; the
CLA grants a relicensing right, not a copyright transfer, so declaring
sole 2020-2026 ownCloud GmbH authorship was inaccurate.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix(tests): trust the Keycloak cert in e2e TLS setup

The Keycloak cert had no SAN, and NODE_EXTRA_CA_CERTS only ever pointed
at the oCIS cert, so any node-fetch/axios call made directly against
Keycloak (admin token fetch, user provisioning) failed TLS validation
and aborted the keycloak/mfa matrix jobs before a spec could run.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix(web): don't wipe assets/ before a successful build

build-assets ran `git clean -xfd assets` before the pnpm build; a failed
typecheck or vite build left assets/core/ empty, so the next Go embed or
docker deployment served no web UI. Clean only after the build succeeds.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* ci: fail clearly when a release tag matches no known package

If the tag-prefix loop found no match, the workflow silently fell
through to a jq lookup against "packages//package.json", failing with a
confusing path error instead of naming the problem.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* ci: drop duplicate dependency-license-check job

web-tests.yml already enforces the license allow-list via
`pnpm licenses:check` (license-checker-rseidelsohn) on every PR.
check-licenses.yml's dependency-license-check ran a second, differently
configured tool (npx license-checker, GPL/AGPL deny-list only), which
could disagree with the first without adding coverage.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Signed-off-by: Lukas Hirt <info@hirt.cz>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:37:00 +02:00
Michal Klos
b2adb15d6d feat: drop drone (#12243) 2026-05-13 12:14:45 +02:00
Deyan Zhekov
2ef3f66992 [tests-only][full-ci][OCISDEV-548] Test: Update Tika to v3.2.2.0-full (#11879)
* [tests-only][full-ci][OCISDEV-548] Update Tika to v3.2.2.0-full
2026-01-12 10:48:10 +02:00
Saw-jan
76b1bd2c19 test: remove account_hash_difficulty tests
Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>
2025-06-10 09:27:51 +05:45
amrita
71ad114267 replace docker inbucket with mailpit 2025-02-25 14:31:17 +05:45
Saw-jan
327e6260ff tests: error handling
tests: remove unnecessary logs
2024-11-22 16:01:58 +05:45
Niraj Acharya
415a4b5f56 removing test-acceptance-from-core-api and merging core and api behat config files to use single command to run api tests 2024-09-03 12:08:19 +05:45
Ralf Haferkamp
5b38fa149d settings: Remove deprecated filesystem backend
We changed the default to `metadata` before the 2.0 release. This PR
alos removes the associated `SETTINGS_STORE_TYPE` and
`SETTINGS_DATA_PATH` settings as they are no longer needed with
`metadata` as the only available backend.
2024-05-13 14:50:02 +02:00
Sabin Panta
fff20ac8db [tests-only][full-ci] updating given step for sharing and env in docs for starting email service (#9081)
* updating given step for sharing and env in docs for starting email service

* addressing review

* fixing the given steps of sharing
2024-05-09 12:25:57 +05:45
Sabin Panta
e861512f15 updated php version to 8.2 (#8903) 2024-04-19 15:17:15 +05:45
Nalem7
d73351af89 [tests-only][full-ci] Make graph api default in test (#8290)
* make graph api default in test

* skip quota test in reva
2024-01-30 17:14:56 +05:45
amrita
0da009d180 Remove TEST_OCIS env 2023-09-29 14:58:42 +05:45
Sagar Gurung
b930e0ffec [tests-only][full-ci]Added documentation to run tika service related tests (#7295)
* Added documentation to run tika service related tests

* Added documentation for docker compose as well

* Make tika service run only for tika
2023-09-25 12:49:56 +05:45
Amrita
82428024f8 Remove composer update from makefile (#7227) 2023-09-06 18:46:57 +05:45
Florian Schade
f172eb20ab [full-ci] chore: bump web to v8.0.0-alpha.1 (#7198)
* chore: bump web to 8.0.0-alpha.1
2023-09-04 17:31:14 +02:00
Sawjan Gurung
5e4b9baa1c [tests-only][full-ci] Update local test docker-compose setup to allow unicode preview tests (#6940)
* update local test docker-compose setup to allow unicode preview tests

* update docs
2023-08-02 17:14:30 +05:45
Swikriti Tripathi
d35a4ac4a6 Use different image of clamav in docker compose (#6588) 2023-06-22 14:08:10 +05:45
Swikriti Tripathi
4f85efee84 [tests-only][full-ci] use tcp for antivirus service in ci (#6573)
* Test antivirus service in ci with different config

* enable other tests and update docker compose files
2023-06-22 09:55:58 +05:45
Swikriti Tripathi
cf6610878d Add configuration for antivirus in docker compose for tests 2023-06-09 16:10:32 +05:45
Sawjan Gurung
89d92d7b1d [docs-only] Add email service to the docker-compose setup for tests (#6347)
* add email docker compose for running tests

* update docs to run email tests in docker compose setup

* fix typo
2023-05-19 18:03:55 +05:45
Phil Davis
4874da778c Reword 'allow to' sentences 2023-05-18 09:48:29 +05:45
Sawjan Gurung
14b11f24a6 [tests-only][full-ci] Change wrapper port from 5000 to 5200 (#6321)
* use port 5200 for wrapper API server

* remove binary and ignore the build
2023-05-16 15:40:06 +05:45
Sawjan Gurung
60fd953c7e [docs-only] Document running tests using ociswrapper (#6283)
* add README for ociswrapper

* add doc on how to tests env config test suites with ociswrapper

* document running tests using ociswrapper

* update local docker compose setup for running tests

* make ocis able to run with ociswrapper

* update wrapper doc

* run with ociswrapper by default

* ignore md files on codacy

* fix README format
2023-05-16 14:39:17 +05:45
amrita
a34c6c42a8 Remove tag skipOnOcis notToImplementOnOCIS oImplementOnOCIS comments-app-required federation-app-required notifications-app-required systemtags-app-required local_storage 2023-05-04 12:42:14 +05:45
Prarup Gurung
984f848cbd Removed scenarios tagged with notToImplementOnOcis tag 2023-02-15 09:05:07 +05:45
Swikriti Tripathi
9e73221a68 [docs-only]Update testing docs (#5444)
* Update testing docs

* make ocis run with new config

* fix wording

* fix sording

* fix command and run.sh

* Edit makefile to make it dynamically run suites

* adress reviews

* address reviews

* address reviews
2023-02-10 11:50:03 +01:00
Phil Davis
04ecce9e39 Fix clean-files target in tests/acceptance/docker/Makefile 2022-07-29 14:15:43 +05:45
Willy Kloucek
2f722f5858 remove references to identifier-registration.yml 2022-06-21 14:07:08 +02:00
Willy Kloucek
6e3752bb47 fix s3 deployment example 2022-05-05 12:53:56 +02:00
Jörn Friedrich Dreyer
565548ebce storage-metadata -> storage-system
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2022-05-04 08:14:13 +00:00
Willy Kloucek
322be13ee7 remove the owncloud storage driver 2022-02-01 11:16:18 +01:00
Willy Kloucek
6927cfd0dc remove unused templates 2022-01-13 11:32:32 +01:00
Willy Kloucek
21220a22d4 make docker based acceptance tests use the dev image make target 2021-11-16 10:10:46 +01:00
Willy Kloucek
6590565a2f introduce OCIS_INSECURE option 2021-11-10 16:55:12 +01:00
Willy Kloucek
d74816f242 configure users and metadata storage separately 2021-10-11 11:39:36 +02:00
Ralf Haferkamp
94f0c8a481 tests: Run ocis container as root for testsuite
For running the acceptance tests in docker we setup a volume that is
shared between the ocis and oc10/testsuite container. Since ocis needs
to be able to write to that volume we're switching it to run as root.

Closes #2497
2021-09-14 15:06:42 +02:00
Phil Davis
c961de1d57 Remove apiBugDemonstration test suite 2021-08-04 08:56:56 +05:45
Willy Kloucek
796376586b clean up and refactor on 2021-05-26 16:31:54 +02:00
Willy Kloucek
b575e93cdf [CI SKIP] first fixes 2021-05-26 15:25:09 +02:00
Jörn Friedrich Dreyer
b8621aa55b Update tests/acceptance/docker/src/ceph.yml 2021-05-12 12:53:54 +02:00
André Duffeck
87ec7a5125 Integrate the s3ng storage driver 2021-05-12 09:23:05 +02:00
Willy Kloucek
63c6a438b6 use official redis 2021-04-20 08:56:12 +02:00
Willy Kloucek
6020a37640 adapt to owncloud.dev 2021-04-07 13:40:12 +02:00
Ilja Neumann
03cadf304c Rename konnectd to IDP 2021-01-29 12:31:16 +01:00
Phil Davis
dfb4eb11cb Rename apiOcisSpecific to apiBugDemonstration 2021-01-28 12:03:01 +05:45
Phil Davis
924246c0a6 Rename apiBasic to apiAccountsHashDifficulty 2021-01-28 11:56:07 +05:45
HariBhandari07
192a847f2c [Tests-Only] Convert expected failure file to markdown 2021-01-21 10:38:51 +05:45
Phil Davis
7b20eb3401 Add expected-failures for webUI tests 2021-01-01 13:28:34 +05:45
Willy Kloucek
054c1151b2 use .drone.env for test reference 2020-12-22 10:07:25 +01:00
Willy Kloucek
1c409c64a1 implement acceptance tests in docker for dev machine 2020-12-15 08:36:34 +05:45