Commit Graph

203 Commits

Author SHA1 Message Date
Kumar Shivendu
1086335c6d feat: Build any branch using GH workflow (#4120)
* feat: Allow building any branch with GH dev image builder workflow

* fix: Trim feat, fix, etc

* fix: Replace all / with -
2024-04-26 16:06:19 +05:30
Luis Cossío
3064ed99e3 Remove api-key path matching (#4046)
* remove api-key path matching

* remove deprecated test suite

* require management access for stacktrace api

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-04-16 12:54:11 -04:00
Luis Cossío
82511e65fa RBAC: [tests] exhaustive access tests (#3961)
* create exhaustive access test (missing body stubs)

* use json body in rest requests

* use better stubs

* green test for create_shard_key

* make it work for delete_shard_key

* make it work for list_collections

* make it work for get_collection

* make it work for create_collection

* make it work for update_collection_params

* make it work for delete_collection

* make it work for update_aliases

* make it work for create_index

* make it work for collection_exists

* make it work for delete_index

* make it work for get_collection_cluster_info

* don't build grpcio and use `uv` for faster deps installation

* partially prepare for update cluster ops

* make it work for list_collection_aliases

* make it work for list_aliases

* make it work for list_collection_snapshots

* make it work for create_collection_snapshot

* huge refactor + make it work for delete_collection_snapshot

* make it work for download_collection_snapshot

* test_upload_collection_snapshot

* test_recover_collection_snapshot

* test_recover_collection_snapshot

* test_upload_shard_snapshot

* test_recover_shard_snapshot

* test_list_shard_snapshots

* test_create_shard_snapshot

* test_delete_shard_snapshot

* test_download_shard_snapshot

* test_list_snapshots and test_create_snapshot

* test_delete_snapshot

* test_download_full_snapshot

* test_get_cluster

* test_recover_raft_state

* test_delete_peer

* prepare for splitting into another PR

* skip api exhaustiveness checks

* lil cleanup

* fix integration tests workflow

* test search api

* test recommend api

* test discover api

* test count and scroll

* test get and upsert points

* test update points batch

* test update and delete vectors

* test set, overwrite, delete, and clear payload

* test service level actions

* finish testing (with errors), introduce not needing success

* make tests much faster

* simplify delete tests

* complete collection cluster operations

* cleanup

* update after rebase

* change permissions for create and delete shard keys

* review fixes

* add newline
2024-04-11 12:42:59 -04:00
Kumar Shivendu
03190e833d fix: Dev container build workflow (#3967) 2024-04-04 14:46:49 +05:30
Kumar Shivendu
7dc6ad03cb feat: Remove existing buildx containers before building dev branch (#3959)
* feat: Remove existing buildx containers before building dev branch

* fix: Typo
2024-04-02 15:55:18 +05:30
Luis Cossío
8a01c7e13c RBAC: stateful validation with value_exists (#3874) 2024-03-21 13:52:32 -03:00
Kumar Shivendu
cf9f5aab98 fix: Include git commit id while building docker image if possible (#3640)
* feat: Print commit id in dev container build workflow

* fix: Keep .git while building Qdrant binary in docker

* fix: Remove redundant printing of git commit id

* fix: Copy only git files first

* fix: Docker build should have commit id if present

* refactor: Use fewer lines of code

* feat: Use git commit id from build arg

* refactor: Use cleaner code

* Fix string reference issue

* fix: Dont print info log if commit is not set

* fix: Include git commit id in release containers

---------

Co-authored-by: timvisee <tim@visee.me>
2024-02-22 21:26:44 +05:30
dependabot[bot]
6cd1e7f6cd Bump arduino/setup-protoc from 2 to 3 (#3536)
Bumps [arduino/setup-protoc](https://github.com/arduino/setup-protoc) from 2 to 3.
- [Release notes](https://github.com/arduino/setup-protoc/releases)
- [Commits](https://github.com/arduino/setup-protoc/compare/v2...v3)

---
updated-dependencies:
- dependency-name: arduino/setup-protoc
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-06 10:01:24 +01:00
Arnaud Gourlay
f510fb151f Remove doctest usage (#3475) 2024-01-29 10:21:10 +01:00
Andrey Vasnetsov
5afe7defc4 Revert "fix: Include git commit id while building docker image if possible" (#3468) 2024-01-26 00:29:20 +01:00
Kumar Shivendu
85a08adcb8 fix: Include git commit id while building docker image if possible (#3419)
* feat: Print commit id in dev container build workflow

* fix: Keep .git while building Qdrant binary in docker

* fix: Remove redundant printing of git commit id

* fix: Copy only git files first

* fix: Docker build should have commit id if present

* refactor: Use fewer lines of code
2024-01-25 23:24:19 +05:30
Kumar Shivendu
fed3262048 fix: ghcr image name should be just qdrant (#3416) 2024-01-17 19:39:14 +05:30
Kumar Shivendu
f16bf879c1 fix: Update main dev image tag in ghcr (#3411)
* fix: Update main dev image tag in ghcr

* fix: Improve name of the workflow
2024-01-17 17:30:02 +05:30
Dhanus
7740656e4b build: AppImage release (#3343)
* fix: formatting

* build: AppImage release

* chore: add x86_64 in file name

* chore: appimage issues fix

* chore: remove chmod

* build: appimage on ubuntu 20.04

* fix: formatting

* build: AppImage release

* chore: add x86_64 in file name

* chore: appimage issues fix

* chore: remove chmod

* build: appimage on ubuntu 20.04

* include web ui

* fix: linux build

* fix: use UI files within appimage instead of copying

* chore: cleanup
2024-01-16 13:26:20 +01:00
Kumar Shivendu
ea32150b0e feat: Expose git commit id in the health check endpoint (#3346)
* feat: Expose git commit id in the health check endpoint

* fix: CI errors

* test: Add test for health check api

* feat: Add / endpoint to openapi schema

* Make git commit hash optional

* ci: Enable debugging setup-protoc action

* Install later protobuf compiler through GitHub Action

* Disable debug mode for setup-protoc job

* refactor: Use commit instead of commit_id

* fix: Use commit instead of commit_id gRPC docs

* test: Update ping API test

* refactor: Rename ping api to root api

---------

Co-authored-by: timvisee <tim@visee.me>
2024-01-09 16:14:08 +05:30
neo773
3818e459d6 Add debian package build step (#3344) 2024-01-08 11:19:14 +00:00
Dhanus
daeccc3253 feat: musl release (#3342) 2024-01-06 22:00:31 +00:00
Kumar Shivendu
8cd3c4a82f fix: Prune containers and volumes in self hosted gh runner (#3316) 2024-01-04 18:47:08 +05:30
generall
ba42d4ceb6 replace docker.pkg.github.com with ghcr.io 2023-12-27 14:52:14 +00:00
generall
2490e6ed0d add dokcerx prune 2023-12-27 13:17:01 +00:00
generall
783ecee3f1 almost empty commit to dev to trigger CI build 2023-12-27 12:55:26 +00:00
Kumar Shivendu
8d8e2ddfac ci: Preserve images from the dev branch (#3199)
* ci: Preserve images from the dev branch

* fix: Trigger build for dev containers on dev branch merge

* refactor: Rename jobs and remove unused code

* recover dockerhub credentials from the dev build CI

* fix typo

* add workflow dispatch

* switch to github token [skip ci]

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2023-12-27 18:19:16 +05:30
dependabot[bot]
0e4e6ed2ba Bump actions/upload-artifact from 3 to 4 (#3238)
* Bump actions/upload-artifact from 3 to 4

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* bump download/artifact as well

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>
2023-12-20 10:56:23 +01:00
dependabot[bot]
bd9ca77773 Bump actions/setup-python from 4 to 5 (#3209)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-13 11:38:09 +00:00
Tim Visée
10649f881b Explicitly update rustup toolchain (#3214) 2023-12-12 17:34:59 +01:00
Tim Visée
ac82526cc7 Fix release artifacts for macOS (#3194)
* Install latest stable Rust version on macOS and Linux for release builds

* Rustup is already available on macOS, don't install it
2023-12-11 13:06:56 +01:00
Wesley
8b806f90de Read-Only API keys (#2979)
* Read-only API keys

Co-authored-by: Luis Cossío <luis.cossio@outlook.com>

Correct placement of OpenAPI security

Place regex dep with actix/tonic

* Read-only API keys

* Replace with pytests

* API Key tests run on the same job

* Drop allow dead-code

* Rename setting key

* Containerized tests

* No special config files

* DRY

* refactor: re-use can_write method

* refactor: replace static by constants

* refactor: get PID from `$!`

* refactor: use explicit brackets on boolean condition

* style: fix identation

* small fixes + account for new APIs

* specify security in openapi

* small fix + chmod for .sh testfile

* add best-efford check for api consistency

---------

Co-authored-by: Amr Hassan <amr.hassan@gmail.com>
Co-authored-by: generall <andrey@vasnetsov.com>
2023-11-23 21:58:35 +01:00
Roman Titov
f2d2a06eb5 Add custom TLS certificate support for remote snapshot downloads to snapshot recover APIs (#2895)
* WIP: Add proper HTTPS support for remote snapshot downloads to snapshot recover APIs

* Implement HTTPS client configuration

* fixup! Implement HTTPS client configuration

Move HTTPS client configuration from `actix/certificate_helpers.rs` to
`common/http_client.rs`

* Initialize and propagate HTTPS client to shard snapshot API

* Use reqwest client reference where possible

* Add integration test

* Simplify HTTP(S) client initialization

* fixup! Simplify HTTP(S) client initialization

* Fix lifetime conflicts after rebase on dev

* Add comment to elaborate on PEM concatenation

* fixup! Add integration test

Add `test_tls_snapshot_shard_transfer.sh` run to the existing TLS test job
instead of creating a new one

---------

Co-authored-by: timvisee <tim@visee.me>
2023-11-10 09:56:49 +01:00
Arnaud Gourlay
d135fbb441 Fix cargo test doc (#2856)
* fix cargo test doc

* run doc test on CI

* try re-ordering tests execution to check if it takes less time
2023-10-20 16:45:37 +02:00
Luis Cossío
de3a4f4560 CI: improve automatic issue creation (#2706)
* improve automatic issue creation
- restrict to only create automatic issues on PRs of authors of the org, or on dev/main
- modify link to failed job, currently this only applies to the issue reporting job, because it's hard to link them to the actual flaky failure run, but it already improves it.
- reduce retries to only 2. Having 3 tries in total feels more than enough.

* debug author association

* ignore issue updating failure

* cleanup
2023-09-22 09:45:17 -03:00
dependabot[bot]
5012799077 Bump docker/build-push-action from 4 to 5 (#2686)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4 to 5.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-19 10:40:42 +02:00
dependabot[bot]
159a12936b Bump docker/setup-buildx-action from 2 to 3 (#2685)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-19 08:40:59 +02:00
Luis Cossío
7e28613240 reference PR in flaky test template. (#2679)
Also separate build and test stages
2023-09-18 15:36:22 +02:00
Luis Cossío
ad431a1d58 CI: use nextest for running rust tests (#2085)
* ci: use nextest for running rust tests

- enable retries with exponential backoff
- adjust test_building_cancellation to run sequentially

* run whole suite in partitions

* nextest.toml: remove profile override for specific test, lower amount of retries

* reuse builds in rust tests

* fixup rust.yml

* ditch partitioned run

* [empty commit] trigger ci

* automate flaky test reporting

* remove step name

* rename to Rust tests

* rebase + checkout only the issue template

* specify saving junit report in nextest.toml

* fix xq command, add postprocess for macos, update download and upload actions
2023-09-18 11:28:33 +02:00
Tim Visée
c56ddc028f Cargo test --all is deprecated, use --workspace instead (#2664) 2023-09-15 12:54:49 +02:00
Josh Soref
a0bbc40bc9 Spelling (#2658)
* spelling: accumulating

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: and

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: back

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: batching

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: been

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: benchmark

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: collections

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: confusion

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: consensus

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: decrease

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: equal

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: github

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: minimal

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: nonexistent

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: oversampling

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: paths

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: points

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: prevent

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: protobuf

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: proxied

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: randomness

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: recover

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

---------

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-09-14 11:38:23 +02:00
Tim Visée
5bf32793df Fix docker release job (#2654)
* Pull unprivileged image before retagging and publishing on GitHub

* Restructure Docker image release job
2023-09-13 12:17:43 +02:00
Tim Visée
9e301df125 Always run our Docker build CI job on our self hosted runner (#2643) 2023-09-12 15:54:00 +02:00
Bastian Hofmann
c8ab08a057 Build an unprivileged container image (#2613)
* Build an unprivileged container image

This adds building an additional container image with the `-unprivileged` suffix. The resulting container is not running with a root user. Otherwise it is the same as the standard qdrant container image.

Having an image that is running as nonRoot is necessary in a lot of enterprise environments due to security and compliance restrictions.

* Update to use only one Dockerfile with buildargs and one action job to reuse the cached layers from the privileged image

* Also build latest-unprivileged and address feedback
2023-09-11 12:27:46 +02:00
dependabot[bot]
4182ddd1dc Bump actions/checkout from 3 to 4 (#2579)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 09:46:23 +02:00
Arnaud Gourlay
c276e6cd31 add OCI labels on docker image (#2576)
* add OCI labels on docker image

* set version in build script

* Update .github/workflows/docker-image.yml

Co-authored-by: Tim Visée <tim+github@visee.me>

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
2023-09-04 16:09:43 +02:00
Andrey Vasnetsov
f08676a5c5 test for snapshot operations with different volumes (#2554)
* test for snapshot operations with different volumes

* fix collection snapshot upload + test for shards snapshots

* replace persistance -> move_file

* simplify shard snapsot upload method

* fmt

* chmod + x

* replace network host

* fmt

* bash linter [skip ci]

* fix review
2023-09-04 16:07:50 +02:00
Roman Titov
36e317d623 Shard snapshot API (#2410)
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2023-08-30 12:41:29 +02:00
Andrey Vasnetsov
d382bbef44 Stacktrace API (#2457)
* enable /stacktrace API in docker builds

* fmt

* fix ci
2023-08-17 13:50:34 +02:00
Yiping Deng
98a0b627f7 Add test case for create collection after dropping in cluster mode (#2442)
* Add tests for create collection after dropping

* Decrease test collection creation after dropping to 100 iterations

* Upload 50 points on every peer

* Upload more points, 20 calls to every peer

* Set shard number and replication factor

---------

Co-authored-by: timvisee <tim@visee.me>
2023-08-16 08:57:58 +02:00
dependabot[bot]
b08bb3871b Bump arduino/setup-protoc from 1 to 2 (#2397)
Bumps [arduino/setup-protoc](https://github.com/arduino/setup-protoc) from 1 to 2.
- [Release notes](https://github.com/arduino/setup-protoc/releases)
- [Commits](https://github.com/arduino/setup-protoc/compare/v1...v2)

---
updated-dependencies:
- dependency-name: arduino/setup-protoc
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-08 08:54:35 +02:00
Yaroslav Halchenko
6624c95afd codespell: workflow, config, typos fixed (#2248)
* Add github action to codespell master on push and PRs

* Add rudimentary codespell config

* some skips

* fix some ambigous typos

* [DATALAD RUNCMD] run codespell throughout

=== Do not change lines below ===
{
 "chain": [],
 "cmd": "codespell -w",
 "exit": 0,
 "extra_inputs": [],
 "inputs": [],
 "outputs": [],
 "pwd": "."
}
^^^ Do not change lines above ^^^

* Add dev branch as target for the workflow
2023-07-12 16:30:42 +02:00
Tim Visée
65876f7e8b Also run CI tests on macOS (#2227)
* Also test on macOS

* Remove trailing spaces from GitHub Workflow configurations
2023-07-10 11:36:06 +02:00
Tim Visée
36ef2d718a Fix macOS binary release job (#2228)
* Attempt to fix macOS binary release job

* Trigger release binary jobs on release publish, not on create
2023-07-10 11:35:03 +02:00
Arnaud Gourlay
3f3a4ca5bb Cancel sooner consensus test and upload logs (#2102) 2023-06-19 14:16:22 +02:00