34 Commits (d5f3f93e8177de13659bedb3467208a196d360b7)

Author SHA1 Message Date
Kirill Sizov 4e3d81ccae
Fix webhooks (#5611) 3 years ago
Maxim Zhiltsov 58b05536f5
Fix pagination in some endpoints (#5557)
- Added missing pagination or page parameters in `/projects/{id}/tasks`,
`/tasks/{id}/jobs`, `/jobs/{id}/issues`, `/jobs/{id}/commits`,
`/issues/{id}/comments`, `/organizations`
- Updated SDK, tests and UI
3 years ago
ddx-day 0f0913c138
Django social account sso (#5059)
Issue: https://github.com/opencv/cvat/issues/1217

Currently there are a few proposals for SSO authentication to bypass the
current user/password login on the UI. By using Django social accounts
it is also possible to use SSO on the API, retrieving the security token
by passing the code from the OAuth2 workflow. This is an example using
Amazon Cognito, but any other social account could also be added.

### Motivation and context
Currently CVAT has no functionality to log in with SSO. Other current
proposals bypass the current Django framework to add SSO in the UI only,
but still use username and password for the API. Using Django social
accounts integrates SSO with the API as well, allowing it to be used as
an alternative to the username and password, but can also be used
together with other SSO frameworks that are UI only.

### How has this been tested?
Unit tests for SSO manager in cvat-core and integration test with
cvat-sdk for /auth/cognito endpoint.

### Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply.
If an item isn't applicable by a reason then ~~explicitly
strikethrough~~ the whole
line. If you don't do that github will show an incorrect process for the
pull request.
If you're unsure about any of these, don't hesitate to ask. We're here
to help! -->
- [x] I submit my changes into the `develop` branch
- [ ] I have added a description of my changes into
[CHANGELOG](https://github.com/cvat-ai/cvat/blob/develop/CHANGELOG.md)
file
- [x] I have updated the [documentation](
https://github.com/cvat-ai/cvat/blob/develop/README.md#documentation)
accordingly
- [x] I have added tests to cover my changes
- [x] I have linked related issues ([read github docs](

https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword))
- [ ] I have increased versions of npm packages if it is necessary
([cvat-canvas](https://github.com/cvat-ai/cvat/tree/develop/cvat-canvas#versioning),

[cvat-core](https://github.com/cvat-ai/cvat/tree/develop/cvat-core#versioning),
[cvat-data](https://github.com/cvat-ai/cvat/tree/develop/cvat-data#versioning)
and
[cvat-ui](https://github.com/cvat-ai/cvat/tree/develop/cvat-ui#versioning))

### License

- [x] I submit _my code changes_ under the same [MIT License](
https://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the
project.
  Feel free to contact the maintainers if that's a concern.

Co-authored-by: Melanie Day <mday@EYEDIAGNOSIS.local>
Co-authored-by: Maria Khrustaleva <maria@cvat.ai>
Co-authored-by: Nikita Manovich <nikita@cvat.ai>
3 years ago
Maria Khrustaleva 47860c9d22
Remove previews downloading when task creating with cloud storage data (#5499)
PR removes previews downloading from CS when task creating (skipped in
PR #5478). In addition, I had to change the test to check for the file
name existing in the message when the specified file is not found in the
bucket, because now the preview is no longer downloaded at the stage of
creating a task.
3 years ago
Roman Donchenko 0ea14d23a8
Python tests: skip the session hooks if --collect-only is used (#5550)
Turns out that #5456 had a nasty side effect. Session hooks are called
when pytest is run with `--collect-only` (even though no tests are
actually run in this case), and Visual Studio Code periodically runs
`pytest --collect-only` in order to learn what tests exist in the
project. As a result, it keeps restarting the services and restoring the
database in the background.

Work around this by skipping all logic in the hooks if `--collect-only`
is in the options.
3 years ago
Maxim Zhiltsov 470336e82c
Fix docker command (#5541)
Follow up for #5538 

The previous fix fixed the situation for local environments, but broke
the CI. This PR tries to use another way.
3 years ago
Roman Donchenko 580ae49e5a
Migrate to Docker Compose V2 (#5524)
Also, migrate to the version less Compose file format.

Compose V1 is EOL:
<https://www.docker.com/blog/announcing-compose-v2-general-availability/>.
3 years ago
Maxim Zhiltsov ec3e1f34a4
Better reporting for user limits (#5225)
- Added explanatory messages for actions denied for user limits
- Fixed few rules and checks
- Upgraded OPA version
3 years ago
Maria Khrustaleva e624c5b959
Simplify upload data for task (#5498)
It's possible to specify only the manifest file and filename pattern for
creating task with cloud storage data.
The special characters supported now for the pattern are `*`, `?`,
`[seq]`, `[!seq]`.
Please see
[here](8898a8b264/tests/python/rest_api/test_tasks.py (L686))
for some examples of how to use this functionality.

Co-authored-by: Maxim Zhiltsov <zhiltsov.max35@gmail.com>
3 years ago
Maxim Zhiltsov 760f40d3d8
Wait for OPA to load rules in tests startup (#5483)
OPA can take some time to load rules, but our tests don't wait for OPA,
and start right after the server is loaded.
Sometimes it works, but in other times the tests may fail because OPA is
still loading the rules.
This PR allows to wait for OPA during the test suite startup.
3 years ago
Roman Donchenko a6e5813233
Make the Python test log less messy (#5456) 3 years ago
Andrey Zhavoronkov 980c019427
PostgresSQL DB v15 and health check endpoint (#5312) 3 years ago
Roman Donchenko 487c60ce2b
SDK: Add an adapter layer that presents a CVAT task as a torchvision dataset (#5417) 3 years ago
Maxim Zhiltsov 82adde42aa
Refactor resource import export tests (#5429)
Extracted some enhancements from
https://github.com/opencv/cvat/pull/4819

- Extracted common s3 manipulations in tests
- Refactored import/export tests to be more clear
3 years ago
Roman Donchenko 481630e719
Migrate tests/python to from os.path to pathlib (#5426)
`pathlib` improves code readability and type safety. It is already used
in some of the tests; convert all remaining `os.path` usage to `pathlib`
equivalents.
3 years ago
Anastasia Yasakova 3f9ab7cf68
Fix loss of rotation in CVAT format (#5407)
Fix https://github.com/opencv/cvat/issues/4378
3 years ago
Roman Donchenko 192fd72680
Fix creation of tasks with Git repositories via the SDK (#5409)
Fixes #4365
3 years ago
Maria Khrustaleva 9b0d963d1a
Fix REST API tests (#5416)
Fixed REST API tests after merging #5408 and #5396 to develop

Co-authored-by: Boris Sekachev <sekachev.bs@gmail.com>
Co-authored-by: Nikita Manovich <nikita@cvat.ai>
3 years ago
Maria Khrustaleva f405c4acac
Fix missing source tag in project annotations (#5408) 3 years ago
Nikita Manovich 00228ab7bb
Fix several issues with testing system (#5394)
Fix https://github.com/opencv/cvat/issues/5214

1. Stable names for containers (_ vs -)
2. Improve documentation
3 years ago
Maria Khrustaleva ba74709c40
Add tests for export job dataset (#5160) 3 years ago
Anastasia Yasakova 2311b10b80
Fix an issue with Imagenet dataset import (#4861) 3 years ago
Kirill Sizov ce09f28512
Fix SDK tests: login once per class (#5123) 3 years ago
Роман Донченко b029bc9da8
cvat-sdk: Fix creating tasks with non-local files (#5058)
* Move the test file share contents to tests/share

This way, it can be reused between tests.

* cvat-sdk: Fix creating tasks with non-local files

Forcing the `Content-Type` for the `upload_data` API call to
`multipart/form-data` does not work, because the current logic for
converting Python values to parts (`ApiClient._convert_body_to_post_params`)
does not encode them in a way that Django REST Framework can understand (it
JSON-encodes each part).

Fortunately, we don't actually need to do that, since when we create a task
with non-local files, we don't need to upload any files, and so we can just
post the original JSON, so do just that.

I couldn't add a test for the remote image case, because CVAT rejects all URLs
with non-public IP addressses. However, I did test this case manually.
3 years ago
Kirill Sizov bcb3f9bda8
Tests for Webhook sender (#5017)
* tests/rest_api/assets: update webhooks in testdb

* tests/rest_api/test_webhook_sender: add tests for project and ping events

* tests/rest_api/test_webhook_sender: add tests for webhook intersection case

* tests/rest_api/test_webhook_sender: add tests for task update events

* tests/rest_api/test_webhook_sender: add tests for task create and job update events

* tests/rest_api/test_webhook_sender: add tests for issue events

* tests/rest_api/test_webhook_sender: add tests for membership events

* tests/rest_api/test_webhook_sender: add tests for organization event

* Fix Pylint warnings

* apps/engine: get rid of sending `create` signals in views

* apps/organizations: get rid of sending `create` signals in views

* tests/rest_api/test_webhooks: fix typo

* apps/engine: get rid of sending  signals in task view

* tests/rest_api: remove debug prints

* apps/engine: fix pylint errors

* tests/rest_api/test_webhooks_sender: add tests for `redelivery` method

* tests: define tag for minio image

* apps/webhooks: remove owner_id from write serializer

* tests/rest_api/test_webhooks: fix code style

* tests/rest_api: added tests for webhook comment events

* tests/rest_api: fix typo

Co-authored-by: Anastasia Yasakova <yasakova_anastasiya@mail.ru>

* tests: fix warnings from black

Co-authored-by: Anastasia Yasakova <yasakova_anastasiya@mail.ru>
3 years ago
Maxim Zhiltsov 6654366021
Autoformat python tests (#5021) 3 years ago
Kirill Sizov bae7564968
Add webhooks (#4863)
Co-authored-by: “klakhov” <kirill.lakhov@cvat.ai>
Co-authored-by: Boris <sekachev.bs@gmail.com>
Co-authored-by: kirill-sizov <kirill.sizov@intel.com>
3 years ago
Anastasia Yasakova ddcee5b3a9
REST API tests with skeletons (#4987) 3 years ago
Andrey Zhavoronkov e22eac7d9b
Helm tests (#4949) 3 years ago
Maria Khrustaleva 56e8c1eb82
Cypress tests for source & target storage (#4914)
* Draft version

* Implemented import & fixed export && some code cleanup && some fixes &&  updated notifications

* Refactoring && fixed several bugs

* Update licence headers && small fixes

* Update remaining licence headers && small changes

* Fix part of tests

* Fix tests

* Remove unused code

* Fix part of comments

* Some fixes

* Move file download process to job

* Rename methods

* Small fix

* Fix storages configuration for tasks

* Styles

* Remove unused

* Change storage configuration && fix forms reset && some fixes

* Update imports

* Remove extra argument type

* Add catch

* Fix import backup from local

* Import architecture refactoring && some fixes

* Rename props

* Small reorganization of export architecture &&  minor fixes

* Remove unused import

* Small fix && skip error notification when no permissions

* Fix project creating

* Fix part of eslint issues

* Fix eslint

* Fix eslint

* Fix eslint

* eslint

* Fix some eslint issues

* Combine uploadAnnotations and importDataset

* Fix annotation uploading from local

* Update tests

* Fix annotation uploading

* Fix notification

* Update dependencies

* fix

* Update jest tests

* Skip error notification when no permissions

* Update case 91 92 canvas3d tests

* Styles

* Update icons

* eslint

* eslint

* eslint

* eslint

* Create & delete cloud storage

* Common part && export job annotations

* Update tests && add tests for project backup

* Fix typo

* Rename variables

* debug

* Revert timeout

* Fix server host

* Fix test with project backup restore

* small refactoring

* Update issue_2473_import_annotations_frames_dots_in_name
3 years ago
Maxim Zhiltsov 53697ecac5
SDK layer 2 - cover RC1 usecases (#4813) 4 years ago
Andrey Zhavoronkov 5e2eda7601
Extend helm to support Serverless functions and Analytics (#110) 4 years ago
Boris Sekachev 7e20b279af
Added support of skeletons (#1) 4 years ago
Maxim Zhiltsov 5f58a0f7be
Add 2nd layer of SDK (#19) 4 years ago