Releases: vstconsulting/polemarch
Releases · vstconsulting/polemarch
4.0.0
BREAKING CHANGES:
- Removed uWSGI as main server.
- Setting
addrportmigrated to[web]section. - Dropped support of
Centrifugoversions less than 5 (now requireallow_subscribe_for_clientenabled). - Dropped support for
MariaDB10.4, PostgreSQL 12 and less. - Dropped support for
Pythonless 3.10. - Dropped support for
MySQLless 8.0.11. - The minimum supported version of
SQLiteis increased from 3.21.0 to 3.27.0. - Migrated to
Django5.1. Pagination-Identifiersused to send duplicate values before, but now they can't.Pagination-Identifiersare now sorted independently of the order in the results.- Migrated to
OAuth2authentication model (internal server API). - Disabled session auth for swagger ui and API.
msgpackis used as default serializer for celery instead ofpicklefor security and performance reasons.- Migrated to pyproject.
Changelog:
- Feature(UI): Custom users tokens for authentication (for integrations and automation).
- Feature(api): Complete migration to uvicorn and asyncio web-server.
- Feature(api): New
web_workercommand to start webserver (without celery worker). - Feature(api): Migrate to JWT authentication.
- Feature(api):
Python3.13 support. - Feature(api): Latest Ansible versions support.
- Feature(api): Add tarantool drivers for celery.
- Feature(api): Add support for django cache in tarantool.
- Feature(docker): Migrate base image to python 3.12.
- Fix(api): Other performance enhances.
- Fix(api): Valid Swagger 2.0 schema generation for some custom fields.
- Fix(api): Support SQS fifo queues.
- Fix(plugins): Provide model instances in custom plugin execution.
- Refactoring(build): Migrate to pyproject.
3.0.3
Changelog:
- Feature(backend): Migrate to vstutils 5.6.
- Feature(backend): Provide to setup normal headers to endpoint operations.
- Feature(plugins): Provide async support for history write plugins.
- Feature(web): Provided lightweight healthcheck for webserver
/api/live/. - Fix(backend): Improved healthcheck endpoint to make simple db requests and check current celery connection.
- Fix(dev): Building with docker compose.
- Chore(service): Improved centrifugo notification performance and stability.
- Chore(web): Improved performance for static files.
3.0.2
Changelog:
- Feature(backend): Setup filename for ANSIBLE_STRING plugin.
- Feature(backend): Send
object_nameof models in hooks. - Fix(backend): Allow to configure rpc backend and broker using environment variables in
dockerrun. - Fix(package): Do not store compressed files.
- Chore(deps): Update rtd, prod and tests dependencies for backend.
- Docs: Add more information about architecture, plugins and centrifugo settings.
3.0.1
Changelog:
- Feature(backend): History
inventoryfield now has value ofarg_shown_on_history_as_inventoryof execution plugin. - Fix(backend): Migrate initiator fields to new model instances.
3.0.0
BREAKING CHANGES:
- Dropped Python<3.8.
- Dropped API v2 and v3.
- Execution template, template option, periodic task models and API changed a lot. See documentation for more info.
- Hosts and groups count removed from
/stats/. Execution and inventory plugins count added instead. - All API paths containing
moduleorplaybooknow namedansible_moduleoransible_playbookaccordingly. - Old
ci_templatevariable values are not compatible with new which require template option ids. Need to change manually. - Paths end with
../set_owner/now handlesPATCHmethod instead ofPOST. Same for/project/{id}/sync/,/history/{id}/cancel/. - Import inventory actions now called
import_inventory. pluginssection renamed toexecution.plugininsettings.ini.- Database migrations are potentially dangerous, it's recommended to make backup before.
- Inventory model now has
pluginfield which is required in API. - Remove
import_inventory_from_fileaction. - Rework
import_inventoryaction. - Remove
master_projectfromHost,GroupandInventoryand removeInventoryItemsabstract model itself. - Execution plugins now must provide
compatible_inventory_pluginssetting. If not provided this is understood that execution plugin is incompatible with any inventory. - Execution plugins now should be imported from
polemarch.plugins.executionmodule instead ofpolemarch.plugins. - Execution plugin's
get_execution_datanow returns command and env vars only. Forraw_inventorythere isget_raw_inventorymethod.
Changelog:
- Feature(backend): Send history output to multiple places.
- Feature(backend): Create
POLEMARCH_DB,ANSIBLE_STRINGandANSIBLE_FILEplugins which are handle inventory data structure and processing. Plugins may work with state or db and may support import or not. - Feature(backend): Hide hosts db stuff for state handled plugins and state action for db handled plugins.
- Feature(backend): Option
compatible_inventory_pluginsis dictionary of field names and tuple of plugin names. - Feature(backend): Make
get_pre_commandshook for execution plugins. - Feature(backend): Allow to save multiple commands in history instance.
- Feature(backend): Create
DynamicPluginFieldto allow inventory plugin haveto_representation,to_internaletc. - Feature(frontend): Add inventory plugins counter to dashboard.
- Feature(frontend): Support
filtersbyInventoryAutoCompletionFieldfield and filter supported plugins in execute actions. - Feature(frontend): Display execution args as fields in history page.
- Fix(backend): Deleting template options when inventory removes doesn't work with postgres.
- Fix(backend): Always save revision to history instead of branch.
- Fix(backend): Make
import_inventoryaction atomic. - Fix(backend):
import_inventorycreates state for inventory if it's state managed. - Fix(backend): Remove patch method from inventory state edit action because it resets data if no data sent.
- Fix(docs): RTD build with new Python version.
- Chore(backend): Test execution plugins.
- Chore(backend): Bump vstutils version to 5.4.0.
- Chore(frontend): Update frontend dependencies.
- Chore(docs): Update execution plugins doc according to changes.
- Chore(docs): Update information with latest changes of vstutils.
- Refactor(backend): Rewrite all views using
create_view,@SimpleAction,@Action,@EmptyActionwhere possible. - Refactor(backend): Refactor plugin executions so
CELERY_TASK_SERIALIZER='json'now can be used. - Refactor(backend): Create
ExecutionTemplate(instead ofTemplate),ExecutionTemplateOption(instead ofTemplateOption),
TemplatePeriodicTask(instead ofPeriodicTask) models. - Refactor(backend): Add support for parsing new template format in
.polemarch.yaml, make old format deprecated. - Refactor(backend): Remove unnecessary frontend code, such as setting
hideNotRequired = true, as it can be done now on backend. - Refactor(backend): Removed
set_inventory_fieldopenapi hook. - Refactor(backend): Move inventory rendering logic to plugins.
- Refactor(backend): Move inventory import logic to plugins.
- Refactor(backend): Move history and execution plugins to
polemarch.pluginspackage. - Refactoring(backend): Execute and template option create actions now validates all fields related to
Inventoryinstead of justinventoryfield. - Docs: Update GUI workflow docs screenshots.
- Docs: Add manual for creating inventory plugins.
- Docs: Add GUI workflow docs for
ANSIBLE_STRINGandANSIBLE_FILEinventories. - Service: Use
django.core.cache.backends.redis.RedisCacheinstead ofdjango_redis.cache.RedisCache.
2.3.1
Changelog:
- Fix: Execution output now works as expected (probably).
- Chore: Update frontend dependencies.
- Chore: Add babel config.
- Chore: Update eslint config.
- Chore: Add vue and corejs dev dependencies.
- Chore(docs): Migrate to
sphinxcontrib-openapifor building schema docs. - Chore(docs): Add information about admin in installation.rst
- Refactor: Remove
OldLinesMixin, use script setup and useuseAutoUpdate.
2.3.0
Changelog:
- Feature(git): Provide to setup config params for git operations.
- Feature(CI): Deploy latest release with
werf export. - Feature(service): Deploy Polemarch to k8s via werf
- Feature(backend): Add project and execution metrics.
- Feature(backend): Process
overridefield in template execute action. - Fix(docs): RTD can't build docs.
- Chore(deps): Update vstutils to 5.2.1.
- Chore(api): Use schema field inspection for inventory field.
- Chore(CI): Migrate to lightweight image for js linting.
- Chore(tests): Add unit tests for ansible plugins.
- Chore(deps): Update frontend dependencies.
- Chore(deps): Update vstutils to 5.2.4.
- Chore: Fix typo in "Statistics" word.
- Refactoring: Move template kind/plugin map to constants.
- Refactoring: Remove ACL handlers.
- Refactoring: Remove default permission
ModelPermissionand use singleSetOwnerPermission. - Refactoring: Remove
BaseModel,BModeland so on and use them from vstutils. - Optimization: Optimize
filter_by_userquery. - Docs: Add info about sqlite troubles with nested groups.
2.2.1
Changelog:
- Fix(backend):
ansible_ssh_private_key_filenot generates in execution folder.
2.2.0
Changelog:
- Feature: Create plugins system which allows to execute custom command from Polemarch.
- Fix: Fix FK inventory field showing id instead of name (vstutils>=5.2.0).
- Fix: Add patch to
setup.pywhich raises compile error if frontend hasn't built. - Refactor: Use
BaseEnum.LOWERin enums. - Refactor:
test_community_templatesnow usesMockServerand doesn't make calls outside. - Refactor: Get rid of weird template execution approach with test client and use PLUGIN_HANDLERS instead.
- Chore: Update vstutils to 5.1.11.
- Chore: Add
openssh-clientdependency to production docker build.
2.1.2
Changelog:
- Feature(service): Split notifications about updates in centrifugo by labels.
- Feature: Display values of view field in breadcrumbs instead of id.
- Chore(deps): Update vstutils to 5.1 release.
- Fix(UI): Fix pagination, groups surfing, etc.
- Optimization(api): Improve serialization performance.
- Optimization(UI): Less requests to api.