All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- conda-store and conda-store-server images are now deployed to quay.io/Quansight, which has support for podman and rkt. (#455)
- Parallel builds of conda environments (#417)
- Switch to green theme by default for conda-store UI (#463)
- Fix for use environment stats (#466)
- make conda-store-ui settings configurable (were previously hardcoded and broken) (#451)
- Added new conda-store-ui (#444)
- Added new option
CondaStore.conda_indexed_channels
for indexed channels (#445) - Allow passing environment variables in specification (#424)
- Switched to hatch for conda-store and conda-store-server (#449, #450)
- Switch default UI to conda-store-ui and expose behind
/admin/
(#448) - Significant database rework on package storage for performance (#300)
- Remove unused helm chart (#450)
- Remove nix flakes from repository (#443)
- environment description is optional
- Make symlink path configurable for builds on filesystem #388
- Redirect on login and cookie handling #381
- Visually split the namespace with bootstrap bit #374
- Make image name and tag configurable for uploads to registries #380
- including package_data #379
conda-store-server --standalone
now runs conda-store-server without any service dependencies (#378, #376)- Initial helm chart skeleton still work to be done to have official helm chart
- Bug in LocalStorage implmentation #376
- Bug in docker builds when pushed to container registries #377
- CORS endpoint error on login when using POST #375
- push/pull container images to/from additionall registries (#370)
- adding description associated with environments #363
- Adding shebang support for conda-store (#362)
- Fixed example demo for docker
- Fixing docker registry implementation in conda-store (#368)
- Adding authentication behind docker registry (#369)
- Adding additional query parameters environment_id, namespace, name in list api methods in build/environment #350
- Adding ability to sort based on start/schedule/ended for list builds #352
- Adding repo.anaconda.com to default channels #354
- Empty list for conda_allowed_channels now will allow any channel #358
- Changed docker images to no longer run as root by default #355
- Added
c.CondaStoreServer.template_vars
for easy customization #347 - Consistent naming of
conda-store
throughout project #345 - Adding token endpoint #335
- Adding token UI create button #348
- Bug with user being able to modify
c.RBACAuthorizationBackend.authenticated_role_bindings
#346
- Adding cli command
solve
to call remote conda solve api (#329) - New filters for build and environment api calls status, artifact, package (#329)
- Adding Alembic migration integration (#314)
wait
option in cli for waiting on artifacts and builds (#328)list build
command (#328)- tests for client conda-store (#328)
- issue with caching option in run command (#328)
- api now exposes the build_artifacts field on
api/v1/build/<build-id>/
- fixed release process using build toolchain
- Command line client for conda-store (#327)
- Adding searchbar for UI (#326)
- OpenAPI specification in documentation
- Added namespace query parameter to
/api/v1/environment/?namespace=
(#324)
- Transition to FastAPI for web server from Flask (#277) end user API should not have changed
conda_store_server.server.auth.Authentication.authenticate
is now anasync
method receiving a Starlette request object
- Adding PyPi validation for included, required, and default packages (#292)
- Creating a Conda solve API endpoint (#279)
- Fully tested API for
/api/v1/...
endpoints (#281)
- Support for valid
pip
options inenvironment.yaml
(#295)
- Debug mode now controlled by CondaStoreServer.log_level
- Make concurrency setting optional in configuration
- Sort namespaces in create environment UI button
- Allow cookies cross domain
- Correct default namespace for POST /api/v1/specification/
- Account for None, "" values within namespace POST in
/api/v1/specification
#274
- API endpoint
/api/v1/permission/
and UI user endpoint showing user permissions #271
- better error messages when user not authenticated #261
- conda package builds independent from conda package download #258
- exact search route for conda-store api in packages #264
- adding lockfile to conda-store to provide a short term fix around conda/mamba concurrency issue #268
CondaStore.conda_...
options for managing channels and packages in specification #256- Ability to modify/validate specifications server side #252
- Concurrency option for conda-store celery worker #250
- Flask webserver has a
CondaStore.behind_proxy
option to properly handle X-Forward- headers #249 - Docker layer chaching to CI for docker image builds #234
buildId
parameter in/api/v1/environment/<namespace>/<name>/
changed tobuild_id
#251
build_id
response toPOST /api/v1/specification
route #244- Added a validation for namespaces that is more flexible # 233
- Added ability to use via
nix run github:quansight/conda-store ...
#232 - API endpoints now return channel name instead of id #231
- Flask paths now support routes with and without a trailing slash #230
- Adding support for templates for build and environment symlink directories
- Adding support for internal and external secure settings
- Error in build url with extra
/
in environment page
- Ensure compatibility with keycloak authentication flow
- Support for custom
GenericOAuthAuthentication.oauth_callback_url
- Support for optional tls_verification on oauth2 flow
GenericOAuthAuthentication.tls_verify
- Testing to support mysql database
- setting fixed sizes to Unicode columns
- api endpoint for exporting yaml environment files #204
- using Unicode sqlalchemy column instead of String
- removed typer as a dependency
- removed hardcoded path for conda executable
- environment creation endpoint with namespaces
- removed psycopg2 as a dependency #206
- validate that config_file exists #223
- missing dependency in
conda-store-server/setup.py
yarl
- added ability to search within the
/api/v1/build/<build-id>/package/
path #193 - environments and namespaces no longer show up in API and UI when soft deleted #194
docker-compose.yaml
inexamples/docker
now compatible with 2.0 #195- flask templates now included in the PyPi packages #196
- support for credentials supplied for object storage including IAM credentials #176
- namespace UI to conda-store server #183
- create/read/delete methods for namespaces
/api/v1/namespace/
#181 - distinct_on query parameter to list REST API methods #164
- adding sorting query parameter to list REST API methods #162
- ability to filter Conda packages by build parameter #156
- delete environments and all related builds from REST API #154
- initial support for pagination for all list REST API methods #126
- support for filtering environments by name #125
- working Kubernetes deployment example #116
- significant documentation effort via multiple PRs
- namespace parameter in JSON POST request to
/api/v1/specification/
#178 - API route for listing packages within build instead of including within build API response #157
- database relationship between build, environments, and namespaces improved #153
- adding conda-store gator extension to
example/docker
#165 - get query count before applying limits to query #159
This is the beginning of the changelog. Here I will list the most notable things done in the past 3-6 months.
- complete authentication and RBAC based authorization modeled after JupyterHub authentication model #97
- support for a namespace associated with environments and builds #96
- testing of conda-store UI via cypress #111
- delete and update buttons immediately update status #107
- support for dummy authentication and OAuth2 (GitHub + JupyterHub) authentication #103
- delete method for conda-store builds #94
- support for url prefix #109
- docker button says click to copy to clipboard #110
- enabling rollbacks of environment builds #93
- adding
conda env export
for pinned YAML file #92 - celery integration for true task based builds #90
- conda-store configuration is configured via Traitlets #87
- Prometheus metrics endpoint #84
- help button in top right hand corner #83
- support for internal and external url for s3 bucket #81
- use Micromamba for environment builds by default #66
- download repodata compressed #76
- only show artifacts once it has been built #113
- true parallel builds and retry if Conda channel update fails #114
- SQLAlchemy connection leak to database #105