From 63ba95369cee785c518c47e1f961b37533c680eb Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Tue, 2 Nov 2021 13:17:42 +0000 Subject: [PATCH 01/14] change endpoint function names to avoid import collisions #257 - These functions had the same function names as the ones defined for DataGateway API --- .../resources/search_api/search_api_endpoints.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/datagateway_api/src/resources/search_api/search_api_endpoints.py b/datagateway_api/src/resources/search_api/search_api_endpoints.py index e040f9d2..07c2aa85 100644 --- a/datagateway_api/src/resources/search_api/search_api_endpoints.py +++ b/datagateway_api/src/resources/search_api/search_api_endpoints.py @@ -1,9 +1,10 @@ from flask_restful import Resource -# TODO - Might need kwargs on get_endpoint(), get_id_endpoint(), get_count_endpoint(), -# get_files_endpoint(), get_count_files_endpoint() for client handling? -def get_endpoint(name): +# TODO - Might need kwargs on get_search_endpoint(), get_single_endpoint(), +# get_number_count_endpoint(), get_files_endpoint(), get_number_count_files_endpoint() +# for client handling? +def get_search_endpoint(name): """ TODO - Add docstring """ @@ -30,7 +31,7 @@ def get(self): return Endpoint -def get_id_endpoint(name): +def get_single_endpoint(name): """ TODO - Add docstring """ @@ -46,7 +47,7 @@ def get(self, pid): return EndpointWithID -def get_count_endpoint(name): +def get_number_count_endpoint(name): """ TODO - Add docstring """ @@ -78,7 +79,7 @@ def get(self, pid): return FilesEndpoint -def get_count_files_endpoint(name): +def get_number_count_files_endpoint(name): """ TODO - Add docstring """ From d0e52d96dd3b94ce54dcc9b81969e777a196922a Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Tue, 2 Nov 2021 13:20:25 +0000 Subject: [PATCH 02/14] feat: add unimplemented endpoint definitions for search API #257 --- datagateway_api/src/api_start_utils.py | 50 ++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/datagateway_api/src/api_start_utils.py b/datagateway_api/src/api_start_utils.py index ea680e95..246d7331 100644 --- a/datagateway_api/src/api_start_utils.py +++ b/datagateway_api/src/api_start_utils.py @@ -34,6 +34,13 @@ instrument_facility_cycles_endpoint, instrument_investigation_endpoint, ) +from datagateway_api.src.resources.search_api.search_api_endpoints import ( + get_files_endpoint, + get_number_count_endpoint, + get_number_count_files_endpoint, + get_search_endpoint, + get_single_endpoint, +) from datagateway_api.src.swagger.apispec_flask_restful import RestfulPlugin from datagateway_api.src.swagger.initialise_spec import initialise_spec @@ -173,6 +180,49 @@ def create_api_endpoints(flask_app, api, spec): api.add_resource(ping_resource, "/ping") spec.path(resource=ping_resource, api=api) + # Search API endpoints + # TODO - make conditional respect new config style when implemented + if True: + search_api_extension = "search_api" + search_api_entity_endpoints = ["datasets", "documents", "instruments"] + + for entity_name in search_api_entity_endpoints: + get_search_endpoint_resource = get_search_endpoint(entity_name) + api.add_resource( + get_search_endpoint_resource, f"/{search_api_extension}/{entity_name}", + ) + spec.path(resource=get_endpoint_resource, api=api) + + get_single_endpoint_resource = get_single_endpoint(entity_name) + api.add_resource( + get_single_endpoint_resource, + f"/{search_api_extension}/{entity_name}/", + ) + spec.path(resource=get_single_endpoint_resource, api=api) + + get_number_count_endpoint_resource = get_number_count_endpoint(entity_name) + api.add_resource( + get_number_count_endpoint_resource, + f"/{search_api_extension}/{entity_name}/count", + ) + spec.path(resource=get_number_count_endpoint_resource, api=api) + + get_files_endpoint_resource = get_files_endpoint("datasets") + api.add_resource( + get_files_endpoint_resource, + f"/{search_api_extension}/datasets//files", + ) + spec.path(resource=get_files_endpoint_resource, api=api) + + get_number_count_files_endpoint_resource = get_number_count_files_endpoint( + "datasets", + ) + api.add_resource( + get_number_count_files_endpoint_resource, + f"/{search_api_extension}/datasets//files/count", + ) + spec.path(resource=get_number_count_files_endpoint_resource, api=api) + def openapi_config(spec): # Reorder paths (e.g. get, patch, post) so openapi.yaml only changes when there's a From 47d3c479ad0788b992f015a23bf025ee21a61d7e Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Tue, 2 Nov 2021 13:41:54 +0000 Subject: [PATCH 03/14] add explicit endpoint names to avoid collisions #257 - Collisions were occurring between `/datasets` between DataGateway API and the Search API despite the `/search_api` extension --- datagateway_api/src/api_start_utils.py | 42 +++++++++++++++++++++----- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/datagateway_api/src/api_start_utils.py b/datagateway_api/src/api_start_utils.py index 246d7331..8a7fbc89 100644 --- a/datagateway_api/src/api_start_utils.py +++ b/datagateway_api/src/api_start_utils.py @@ -110,32 +110,48 @@ def create_api_endpoints(flask_app, api, spec): get_endpoint_resource = get_endpoint( entity_name, endpoints[entity_name], backend, client_pool=icat_client_pool, ) - api.add_resource(get_endpoint_resource, f"/{entity_name.lower()}") + api.add_resource( + get_endpoint_resource, + f"/{entity_name.lower()}", + endpoint=f"datagateway_get_{entity_name}", + ) spec.path(resource=get_endpoint_resource, api=api) get_id_endpoint_resource = get_id_endpoint( entity_name, endpoints[entity_name], backend, client_pool=icat_client_pool, ) - api.add_resource(get_id_endpoint_resource, f"/{entity_name.lower()}/") + api.add_resource( + get_id_endpoint_resource, + f"/{entity_name.lower()}/", + endpoint=f"datagateway_get_id_{entity_name}", + ) spec.path(resource=get_id_endpoint_resource, api=api) get_count_endpoint_resource = get_count_endpoint( entity_name, endpoints[entity_name], backend, client_pool=icat_client_pool, ) - api.add_resource(get_count_endpoint_resource, f"/{entity_name.lower()}/count") + api.add_resource( + get_count_endpoint_resource, + f"/{entity_name.lower()}/count", + endpoint=f"datagateway_count_{entity_name}", + ) spec.path(resource=get_count_endpoint_resource, api=api) get_find_one_endpoint_resource = get_find_one_endpoint( entity_name, endpoints[entity_name], backend, client_pool=icat_client_pool, ) api.add_resource( - get_find_one_endpoint_resource, f"/{entity_name.lower()}/findone", + get_find_one_endpoint_resource, + f"/{entity_name.lower()}/findone", + endpoint=f"datagateway_findone_{entity_name}", ) spec.path(resource=get_find_one_endpoint_resource, api=api) # Session endpoint session_endpoint_resource = session_endpoints(backend, client_pool=icat_client_pool) - api.add_resource(session_endpoint_resource, "/sessions") + api.add_resource( + session_endpoint_resource, "/sessions", endpoint="datagateway_sessions", + ) spec.path(resource=session_endpoint_resource, api=api) # Table specific endpoints @@ -143,7 +159,9 @@ def create_api_endpoints(flask_app, api, spec): backend, client_pool=icat_client_pool, ) api.add_resource( - instrument_facility_cycle_resource, "/instruments//facilitycycles", + instrument_facility_cycle_resource, + "/instruments//facilitycycles", + endpoint="datagateway_isis_instrument_facility_cycle", ) spec.path(resource=instrument_facility_cycle_resource, api=api) @@ -153,6 +171,7 @@ def create_api_endpoints(flask_app, api, spec): api.add_resource( count_instrument_facility_cycle_res, "/instruments//facilitycycles/count", + endpoint="datagateway_isis_count_instrument_facility_cycle", ) spec.path(resource=count_instrument_facility_cycle_res, api=api) @@ -162,6 +181,7 @@ def create_api_endpoints(flask_app, api, spec): api.add_resource( instrument_investigation_resource, "/instruments//facilitycycles//investigations", + endpoint="datagateway_isis_instrument_investigation", ) spec.path(resource=instrument_investigation_resource, api=api) @@ -172,6 +192,7 @@ def create_api_endpoints(flask_app, api, spec): count_instrument_investigation_resource, "/instruments//facilitycycles//investigations" "/count", + endpoint="datagateway_isis_count_instrument_investigation", ) spec.path(resource=count_instrument_investigation_resource, api=api) @@ -183,13 +204,16 @@ def create_api_endpoints(flask_app, api, spec): # Search API endpoints # TODO - make conditional respect new config style when implemented if True: + # TODO - Use config value when new config style is implemented search_api_extension = "search_api" search_api_entity_endpoints = ["datasets", "documents", "instruments"] for entity_name in search_api_entity_endpoints: get_search_endpoint_resource = get_search_endpoint(entity_name) api.add_resource( - get_search_endpoint_resource, f"/{search_api_extension}/{entity_name}", + get_search_endpoint_resource, + f"/{search_api_extension}/{entity_name}", + endpoint=f"search_api_get_{entity_name}", ) spec.path(resource=get_endpoint_resource, api=api) @@ -197,6 +221,7 @@ def create_api_endpoints(flask_app, api, spec): api.add_resource( get_single_endpoint_resource, f"/{search_api_extension}/{entity_name}/", + endpoint=f"search_api_get_single_{entity_name}", ) spec.path(resource=get_single_endpoint_resource, api=api) @@ -204,6 +229,7 @@ def create_api_endpoints(flask_app, api, spec): api.add_resource( get_number_count_endpoint_resource, f"/{search_api_extension}/{entity_name}/count", + endpoint=f"search_api_count_{entity_name}", ) spec.path(resource=get_number_count_endpoint_resource, api=api) @@ -211,6 +237,7 @@ def create_api_endpoints(flask_app, api, spec): api.add_resource( get_files_endpoint_resource, f"/{search_api_extension}/datasets//files", + endpoint="search_api_get_dataset_files", ) spec.path(resource=get_files_endpoint_resource, api=api) @@ -220,6 +247,7 @@ def create_api_endpoints(flask_app, api, spec): api.add_resource( get_number_count_files_endpoint_resource, f"/{search_api_extension}/datasets//files/count", + endpoint="search_api_count_dataset_files", ) spec.path(resource=get_number_count_files_endpoint_resource, api=api) From de1535772db64916f75e16d79be3f3fdf10fc47c Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Tue, 2 Nov 2021 15:03:50 +0000 Subject: [PATCH 04/14] docs: rebuild openapi docs #257 --- datagateway_api/src/swagger/openapi.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/datagateway_api/src/swagger/openapi.yaml b/datagateway_api/src/swagger/openapi.yaml index ebdcec17..ff5086d0 100644 --- a/datagateway_api/src/swagger/openapi.yaml +++ b/datagateway_api/src/swagger/openapi.yaml @@ -11013,5 +11013,13 @@ paths: summary: Ping API connection method tags: - Ping + /search_api/datasets/{pid}: {} + /search_api/datasets/count: {} + /search_api/documents/{pid}: {} + /search_api/documents/count: {} + /search_api/instruments/{pid}: {} + /search_api/instruments/count: {} + /search_api/datasets/{pid}/files: {} + /search_api/datasets/{pid}/files/count: {} security: - session_id: [] From bc1d09d69aeb2378a7ec65a0f0350de3bb96deb5 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Tue, 2 Nov 2021 17:18:52 +0000 Subject: [PATCH 05/14] test: add tests for search API endpoints #257 --- test/test_endpoint_rules.py | 45 +++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/test/test_endpoint_rules.py b/test/test_endpoint_rules.py index 9930228d..1d20f2c4 100644 --- a/test/test_endpoint_rules.py +++ b/test/test_endpoint_rules.py @@ -60,6 +60,51 @@ def test_entity_endpoints(self, flask_test_app, endpoint_ending, expected_method ["GET"], id="count ISIS investigations", ), + pytest.param( + "/search_api/datasets", ["GET"], id="Search API search datasets", + ), + pytest.param( + "/search_api/documents", ["GET"], id="Search API search documents", + ), + pytest.param( + "/search_api/instruments", ["GET"], id="Search API search instruments", + ), + pytest.param( + "/search_api/datasets/", + ["GET"], + id="Search API get single dataset", + ), + pytest.param( + "/search_api/documents/", + ["GET"], + id="Search API get single document", + ), + pytest.param( + "/search_api/instruments/", + ["GET"], + id="Search API get single instrument", + ), + pytest.param( + "/search_api/datasets/count", ["GET"], id="Search API dataset count", + ), + pytest.param( + "/search_api/documents/count", ["GET"], id="Search API document count", + ), + pytest.param( + "/search_api/instruments/count", + ["GET"], + id="Search API instrument count", + ), + pytest.param( + "/search_api/datasets//files", + ["GET"], + id="Search API get dataset files", + ), + pytest.param( + "/search_api/datasets//files/count", + ["GET"], + id="Search API dataset files count", + ), ], ) def test_non_entity_endpoints( From f257c3c314fa9760edb390c60f408e9ec649f2c7 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Thu, 11 Nov 2021 11:38:15 +0000 Subject: [PATCH 06/14] ci: specify Python 3.9.7 to fix issue found with 3.9.8 Details of error encountered can be seen at: https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1829077.html --- .github/workflows/ci-build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 72efcc9c..9a1cae61 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -97,7 +97,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v2 with: - python-version: '3.9' + python-version: '3.9.7' architecture: x64 - name: Checkout DataGateway API uses: actions/checkout@v2 @@ -117,7 +117,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v2 with: - python-version: '3.9' + python-version: '3.9.7' architecture: x64 - name: Checkout DataGateway API uses: actions/checkout@v2 @@ -137,7 +137,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v2 with: - python-version: '3.9' + python-version: '3.9.7' architecture: x64 - name: Checkout DataGateway API uses: actions/checkout@v2 @@ -167,7 +167,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v2 with: - python-version: '3.9' + python-version: '3.9.7' architecture: x64 # ICAT Ansible clone and install dependencies From f6a8ebc6c775ba3f5252d5af5cedc4e1e0e79a40 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Thu, 11 Nov 2021 14:54:35 +0000 Subject: [PATCH 07/14] fix: add generation of study.pid #287 --- util/icat_db_generator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/util/icat_db_generator.py b/util/icat_db_generator.py index 64972dfe..3abb13ca 100644 --- a/util/icat_db_generator.py +++ b/util/icat_db_generator.py @@ -434,6 +434,7 @@ def generate_studies(i): apply_common_attributes(study, i) study.startDate = get_start_date(i) study.status = faker.random_int(0, 1) + study.pid = faker.isbn10(separator="-") study.userID = i post_entity(study) From cf7c40bde611337936ebf0773bda60f498b0062a Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Thu, 11 Nov 2021 17:33:06 +0000 Subject: [PATCH 08/14] use new Faker instance to generate study PIDs #287 --- util/icat_db_generator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/util/icat_db_generator.py b/util/icat_db_generator.py index 3abb13ca..15b41c2d 100644 --- a/util/icat_db_generator.py +++ b/util/icat_db_generator.py @@ -34,6 +34,9 @@ faker = Faker() Faker.seed(SEED) +pid_faker = Faker() +pid_faker.seed_instance(SEED) + engine = create_engine( config.get_config_value(APIConfigOptions.DB_URL), @@ -434,7 +437,7 @@ def generate_studies(i): apply_common_attributes(study, i) study.startDate = get_start_date(i) study.status = faker.random_int(0, 1) - study.pid = faker.isbn10(separator="-") + study.pid = pid_faker.isbn10(separator="-") study.userID = i post_entity(study) From 18379becafd23ff2957e556de2bd3fc210a71f5b Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Thu, 11 Nov 2021 17:49:26 +0000 Subject: [PATCH 09/14] fix: add PID field for study in DB backend #287 --- datagateway_api/common/database/models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/datagateway_api/common/database/models.py b/datagateway_api/common/database/models.py index 1fe208a3..36e76bb0 100644 --- a/datagateway_api/common/database/models.py +++ b/datagateway_api/common/database/models.py @@ -1229,6 +1229,7 @@ class STUDY(Base, EntityHelper, metaclass=EntityMeta): modId = Column("MOD_ID", String(255), nullable=False) modTime = Column("MOD_TIME", DateTime, nullable=False) name = Column("NAME", String(255), nullable=False) + pid = Column("PID", String(255)) startDate = Column("STARTDATE", DateTime) status = Column("STATUS", Integer) userID = Column("USER_ID", ForeignKey("USER_.ID"), index=True) From 4f282dc9f1c6d96f5a14d04dc275681b61b87042 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Thu, 11 Nov 2021 17:59:34 +0000 Subject: [PATCH 10/14] refactor: move PID specific Faker instance into relevant generator class #287 --- util/icat_db_generator.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/util/icat_db_generator.py b/util/icat_db_generator.py index 15b41c2d..3f95f676 100644 --- a/util/icat_db_generator.py +++ b/util/icat_db_generator.py @@ -34,9 +34,6 @@ faker = Faker() Faker.seed(SEED) -pid_faker = Faker() -pid_faker.seed_instance(SEED) - engine = create_engine( config.get_config_value(APIConfigOptions.DB_URL), @@ -426,6 +423,8 @@ def generate_user_groups(i): class StudyGenerator(Generator): tier = 3 amount = UserGenerator.amount + pid_faker = Faker() + pid_faker.seed_instance(SEED) def generate(self): for i in range(1, self.amount): @@ -437,7 +436,7 @@ def generate_studies(i): apply_common_attributes(study, i) study.startDate = get_start_date(i) study.status = faker.random_int(0, 1) - study.pid = pid_faker.isbn10(separator="-") + study.pid = StudyGenerator.pid_faker.isbn10(separator="-") study.userID = i post_entity(study) From 89a9e27b72dfe1d474d49a721f128a643ef2ae36 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Fri, 12 Nov 2021 10:41:53 +0000 Subject: [PATCH 11/14] docs: add study PID to swagger docs #287 --- datagateway_api/src/swagger/openapi.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/datagateway_api/src/swagger/openapi.yaml b/datagateway_api/src/swagger/openapi.yaml index ebdcec17..23b1a96a 100644 --- a/datagateway_api/src/swagger/openapi.yaml +++ b/datagateway_api/src/swagger/openapi.yaml @@ -1659,6 +1659,8 @@ components: type: string name: type: string + pid: + type: string startDate: format: datetime type: string From 1f84b8e9414fef32de60569de8f602411e9b9941 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 15 Nov 2021 09:41:25 +0000 Subject: [PATCH 12/14] 1.0.1 Automatically generated by python-semantic-release --- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db971546..0e1e6a7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ +## v1.0.1 (2021-11-15) +### Fix +* Add PID field for study in DB backend #287 ([`18379be`](https://github.com/ral-facilities/datagateway-api/commit/18379becafd23ff2957e556de2bd3fc210a71f5b)) +* Add generation of study.pid #287 ([`f6a8ebc`](https://github.com/ral-facilities/datagateway-api/commit/f6a8ebc6c775ba3f5252d5af5cedc4e1e0e79a40)) + +### Documentation +* Add study PID to swagger docs #287 ([`89a9e27`](https://github.com/ral-facilities/datagateway-api/commit/89a9e27b72dfe1d474d49a721f128a643ef2ae36)) + ## v1.0.0 (2021-11-03) ### Breaking * As the API will be approaching production use soon, this seems like a good opportunity to bump the version to 1.0.0. This also serves as a good test that the introduction of automatic versioning actually works ([`ccf6d29`](https://github.com/ral-facilities/datagateway-api/commit/ccf6d2974216f8979a03e3e223f7c9e84ced05cb)) diff --git a/pyproject.toml b/pyproject.toml index 079f9ba3..5e350629 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datagateway-api" -version = "1.0.0" +version = "1.0.1" description = "ICAT API to interface with the DataGateway" license = "Apache-2.0" readme = "README.md" From 896d3b8e42f7a05697e15ce52e7998830d5d14c3 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Fri, 19 Nov 2021 11:49:27 +0000 Subject: [PATCH 13/14] style: change import order #257 --- datagateway_api/src/api_start_utils.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/datagateway_api/src/api_start_utils.py b/datagateway_api/src/api_start_utils.py index adbb9903..5af11de0 100644 --- a/datagateway_api/src/api_start_utils.py +++ b/datagateway_api/src/api_start_utils.py @@ -22,19 +22,19 @@ from datagateway_api.src.resources.non_entities.sessions_endpoints import ( session_endpoints, ) -from datagateway_api.src.resources.table_endpoints.table_endpoints import ( - count_instrument_facility_cycles_endpoint, - count_instrument_investigation_endpoint, - instrument_facility_cycles_endpoint, - instrument_investigation_endpoint, -) -from datagateway_api.src.resources.search_api.search_api_endpoints import ( +from datagateway_api.src.resources.search_api_endpoints import ( get_files_endpoint, get_number_count_endpoint, get_number_count_files_endpoint, get_search_endpoint, get_single_endpoint, ) +from datagateway_api.src.resources.table_endpoints.table_endpoints import ( + count_instrument_facility_cycles_endpoint, + count_instrument_investigation_endpoint, + instrument_facility_cycles_endpoint, + instrument_investigation_endpoint, +) from datagateway_api.src.swagger.apispec_flask_restful import RestfulPlugin from datagateway_api.src.swagger.initialise_spec import initialise_spec From fd53e88dfd08ba89e055e63c7508927c7e29dead Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 19 Nov 2021 12:28:10 +0000 Subject: [PATCH 14/14] 1.1.0 Automatically generated by python-semantic-release --- CHANGELOG.md | 7 +++++++ pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e1e6a7f..64b41797 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ +## v1.1.0 (2021-11-19) +### Feature +* Add unimplemented endpoint definitions for search API #257 ([`d0e52d9`](https://github.com/ral-facilities/datagateway-api/commit/d0e52d96dd3b94ce54dcc9b81969e777a196922a)) + +### Documentation +* Rebuild openapi docs #257 ([`de15357`](https://github.com/ral-facilities/datagateway-api/commit/de1535772db64916f75e16d79be3f3fdf10fc47c)) + ## v1.0.1 (2021-11-15) ### Fix * Add PID field for study in DB backend #287 ([`18379be`](https://github.com/ral-facilities/datagateway-api/commit/18379becafd23ff2957e556de2bd3fc210a71f5b)) diff --git a/pyproject.toml b/pyproject.toml index 5e350629..98dfca8b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datagateway-api" -version = "1.0.1" +version = "1.1.0" description = "ICAT API to interface with the DataGateway" license = "Apache-2.0" readme = "README.md"