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.
Wherever possible, a reference to an issue in the project issue tracker should be included to give additional context.
- Old Terraform provisioning to allow access to catalogue S3 buckets #188
- Sharing level for AGOL items #186
- Incorrect ID used when updating OGC feature layer in ArcGIS exporter #183
- Support for administrative metadata v1 within data catalogue exporter records #181
- General documentation update and markdown linting #176
- Including data catalogue collection in MAGIC team collection #177
- Removing data catalogue code and streamlining catalogue exporter to only generate JSON records #171
- App dependencies updated #172
- Tweaking and fixing layer metadata for collection #173
- Updating app based on other projects (task runner, CI changes, etc.) #175
- handling optional position properties in RVDAS provider #168
- handling connection errors better in RVDAS provider #167
- Update symbology of PBs latest asset positions layer #157
- Improve latest assets position layer abstract #164
- Rename preference label for SDA in RVDAS provider #163
- Item catalogue template improvements !118 !113 !112 !109
- Fake ObjectID in latest assets position view for compatibility with ArcGIS Server #145
- Only showing redacted config options if underlying config option is set #6
- GeoJSON exporter #150
- Refactored Data Catalogue exporter with support for catalogue items and other derived formats #137
- RVDAS provider for tracking the SDA #25
- Util views for querying asset and position labels #152
- Tailwind based catalogue item templates #154
- Refactored aircraft tracking provider position IDs to avoid stale positions #151
- Adding additional NVS terms for snowmobile and snow cats used by the Geotab provider #5
EXPORTER_DATA_CATALOGUE_RECORD_IDandEXPORTER_ARCGIS_ITEM_IDconfig options #38
prereleaseCI job due to UV behaviour change #132
- Documenting and rationalising database views #125
db migratecommand includes whether latest migration has been applied #120- Upgrading to UV 0.6.x #131
- Improving ArcGIS exporter using draft BAS ArcGIS utils library #127
- Updating project documentation #134
- Updating project dependencies #133
typing.Selftyping due to subtle IDE errors #130
- Ansible environment name for production deployments #121
- Index name in CI publish job #121
- IT staging and production database #48
- Read-only database user #90
- Pre-commit hook #88
- SQL Fluff for linting SQL files #93
- Release/version script and deployments from main branch #96
- Script to create DB migrations #107
data runcommand combiningdata fetchanddata exportcommands, replacing cron script logic #105- Script to clean up prerelease venvs #115
- Populating local DB from production via pgsync #118
- Meta table for tracking applied migrations #119
- Logging level selection via config option / environment variable #34
- Read-only role migration changed to raise exception to create out of band rather than directly #94
- Requests TLS errors related to ArcGIS SDK #111
- Switching from Poetry to UV #89
- Switching to IT Ansible project for app deployments #92
- Rationalising database names/roles #98
- Running database migrations in Ansible #100
- Documenting updated access constraints (public access to latest positions) #46
- Refactoring Sentry related config options into main Config class #112
- Refactoring Sentry monitoring config into app config #116
- Redacting Geotab provider credentials in test file #85
- Error handling where Geotab SDK triggers a HTTP error #76
- Error handling where ArcGIS Feature Service update triggers an internal server error #68
- Outdated private key reference in Continuous Deployment #59
- Outdated private key reference in Continuous Deployment #59
- resetting project based on experiments from Pytest-postgres
- CLI command to run providers manager fetch methods #31
- Basic Sentry integration #10
- GeoJSON exporter #39
- Initial ArcGIS exporter #11
- Preparing for deployment #8
- Project documentation #2
updated_atDB column did not automatically update #22rufflinting settings and subsequent fixes to code #32- Incorrect timezone in GeoJSON export #41
- Changing
psycopgdependency to binary variant to avoid installation issues #49 - Migrations could not be run if already migrated #51
- Derived units in latest asset positions export database view #36
- Downgrading to Python 3.11 due to
arcgisdependency #11 - Provider configs refactored to use main config class #43
- Temporarily disabling timezone checks for positions #160
- Updating dependencies to address Safety vulnerabilities #162
- Updating CI Python image to match version used in deployment environment #165
- Adding missing documentation on deployment packages #151
- Adding missing documentation for testing deployment packages #152
- Adding missing config options for Geotab provider #150
- Adding v0.1.0 -> v0.2.0 specific upgrade guidance #149
- Improving upgrade and installation documentation #149
- Replacing 'ship' with 'research vessel' in platform types enumeration #128
- Setup documentation #111
- Application CLI and
--versioncommand #116 - Conformation prompt when using the
migrate downgradecommand (dangerous action) #117 migrate historycommand to list available migrations #118- Command reference examples #121
- Initial provider implementation, as a set of base classes for use in per-provider implementations #112
- Initial documentation on providers #125
- 'provider' Identifier relation code list term and associated documentation on provider identifiers #134
- Initial Geotab provider #131
- System architecture documentation to reflect the current state of the project and project vision to be more realistic #111
- Ensuring latest position logic in store selects the most recent position, rather than the last inserted row #121
- Updating Python dependencies to latest minor/patch versions #115
- Refactoring Alembic configuration file into application package #71
- Refactoring prototype application to a CLI command #117
- Refactoring prototype application to use a provider #127
- Refactoring test for CLI command used to run prototype application #129
- Replaced placeholder provider with example provider, using faker to generate random assets and positions #130
- Updating documentation generally #142
- Heading/velocity in asset positions now accepts a Quantity for expressing values in different units #147
- Installation documentation for Unix/Linux #106
- Continuous Deployment job to publish Python package used incorrect
before_scriptstep #109
- Initial information and data model documentation
- Initial data sources documentation
- Project boilerplate (README, CHANGELOG, LICENSE, etc.) #66
- Alembic DB migrations for implementing the Postgres data model #70
- Automatically populated inserted/updated Postgres columns #74
- Python linting tools (Flake8 and various plugins, Safety) #78
- GitLab CI, for tests, linting and verifying package building #78
- Python class for Asset, AssetPosition entities #79
- Doc blocks,
__repr__methods, type annotations and flake8 tests #85 - Sprint/release retrospective issue template #85
- 1st pass of README and other documentation #85
- Tests for Alembic migrations #86
- Tests information model minimum precision requirements are met by Postgres implementation #92
- Database Store class to bridge from SQLAlchemy DB access to main application models #91
- Temporary main application to prove assets and asset positions can be written to and from the database #85
- Using correct test database when running application tests #87
- Using class properties in main models to prevent attributes changes outside init method not being validated #102
- Running Alembic CLI commands outside of tests (missing DB engine) #104
- Poetry config updated based on project changes #70
- Technical proposal and system architecture updated to address assumptions made previously #69
- Project proposal updated to move field party tracking to a future version #67
- Data/information model updated to improve consistency, clarity and fix spelling / bad wording #36
- Magic methods in Identifiers class improved (bulk appending items changed to extend) #84
position.datetimerenamed in Information Model toposition.timeto avoid shadowing clashes #82- Name of linting doit task changed to be more abstract in case tools change #88
- Precision for asset positions updated in data/information model to be more realistic #90
- Centralising ULID parsing into a utils method #94
- Changing approach to loading test and non-test dot-env files for use in
Configclass #103 - Pinning SQLAlchemy dependency to < 2.0 release #107