Tags give the ability to mark specific points in history as being important
  • 1.3.1rc1
    1.3.1rc1
    
    This is the first release candidate for the 1.3.1 stable release of ARA.
    
    Changes since 1.3.0:
    
    - bugfix: the callback plugin now properly retrieves host facts for
      both setup and gather_fact tasks
    - unit tests: use assertLogs instead of patch_logger since
      patch_logger was removed from django 3.
    - misc: bumped versions of Ansible used in integration tests
    
  • 1.3.0
    1.3.0
    
    This is the 1.3.0 stable release of ARA.
    
    Changes since 1.2.0:
    
    General
    -------
    
    - Removed hard requirement on python 3.6 due to the usage of f-strings.
      ARA should also work on python 3.5 now.
    
    Web user interface
    ------------------
    
    - Added a tab at the top of the playbook list to search, sort and filter by date
      - Search can be based on the playbook's name, path, or status
      - Sort can be ascending or descending for start date, end date or duration
      - Filter can show playbooks in the last 60 minutes, 24 hours, 7 days or 30 days
    - Fixed a bad link to the task file in the detailed result view
    
    API
    ---
    
    - Added support for searching date fields for playbooks, plays, tasks and results [1]
      For example:
    
        /api/v1/playbooks?started_before=2019-10-01T09:57:36.489016
        /api/v1/results?created_after=2019-10-01T09:57:36.489016
    
    - The duration of items is now calculated and stored in the database model
      instead of being calculated on demand by the API. This provides the ability to
      easily sort objects based on their duration.
      A SQL migration has been added as a result of this change.
    
    - Added support for ordering objects by most fields [2]
      For example:
    
        /api/v1/playbooks?order=id (ascending, oldest first)
        /api/v1/playbooks?order=-id (descending, most recent first)
    
      The currently supported fields available for sorting are:
        - created
        - updated
        - started (for playbooks, plays, tasks, results)
        - ended (for playbooks plays, tasks, results)
        - duration (for playbooks, plays, tasks, results)
        - path (for files)
        - key (for records)
        - ok, skipped, changed, failed and unreachable (for hosts)
    
    - Added support for searching playbooks by their full path or only part of it.
      For example, a playbook with the path ``/home/user/ansible/playbook.yml``
      can be found by searching for either ``user`` or the full path.
    
    - Searching for playbook names now also supports partial search.
    
    - Improved handling of non-ascii/binary output to prevent UnicodeEncodeError
      exceptions [3]
    
    - Standardized the search by status for playbooks, plays, tasks and results
    
    - The built-in development server now checks if psycopg2 or mysqlclient are
      installed before launching when using the postgresql or mysql database backend. [4]
    
    API client
    ----------
    
    - Added support for ignoring SSL verification [5]
    
    Plugins
    -------
    
    - Added the ``ARA_API_INSECURE`` setting to the callback plugin to ignore SSL
      verification.
    
    CLI
    ---
    
    - Added an ``ara-manage prune`` command to delete playbooks older than a specified
      amount of days. [6]
    
    Documentation
    -------------
    
    - Refreshed docs on installation
    - First iteration of documentation for the ``ara-manage`` commands
    - Docs now require the API server dependencies to be installed so CLI snippets
      can be included automatically with sphinxcontrib-programoutput.
    
    Upgrade notes
    -------------
    
    - 1.3.0 introduces a new SQL migration to move durations from the API to the
      database model. If upgrading from a previous version, you will need to run
      SQL migrations with ``ara-manage migrate``.
    
    Referenced or fixed issues
    --------------------------
    
    [1]: https://github.com/ansible-community/ara/issues/30
    [2]: https://github.com/ansible-community/ara/issues/68
    [3]: https://github.com/ansible-community/ara/issues/48
    [4]: https://github.com/ansible-community/ara/issues/63
    [5]: https://github.com/ansible-community/ara/issues/90
    [6]: https://github.com/ansible-community/ara/issues/31
    
  • 1.3.0rc2
    1.3.0rc2
    
    This is the second release candidate for the 1.3.0 stable release of ARA.
    
    Changes since 1.2.0:
    
    General
    -------
    
    - Removed hard requirement on python 3.6 due to the usage of f-strings.
      ARA should also work on python 3.5 now.
    
    Web user interface
    ------------------
    
    - Added a tab at the top of the playbook list to search, sort and filter by date
      - Search can be based on the playbook's name, path, or status
      - Sort can be ascending or descending for start date, end date or duration
      - Filter can show playbooks in the last 60 minutes, 24 hours, 7 days or 30 days
    - Fixed a bad link to the task file in the detailed result view
    
    API
    ---
    
    - Added support for searching date fields for playbooks, plays, tasks and results [1]
      For example:
    
        /api/v1/playbooks?started_before=2019-10-01T09:57:36.489016
        /api/v1/results??created_after=2019-10-01T09:57:36.489016
    
    - The duration of items is now calculated and stored in the database model
      instead of being calculated on demand by the API. This provides the ability to
      easily sort objects based on their duration.
      A SQL migration has been added as a result of this change.
    
    - Added support for ordering objects by most fields [2]
      For example:
    
        /api/v1/playbooks?order=id (ascending, oldest first)
        /api/v1/playbooks?order=-id (descending, most recent first)
    
      The currently supported fields available for sorting are:
        - created
        - updated
        - started (for playbooks, plays, tasks, results)
        - ended (for playbooks plays, tasks, results)
        - duration (for playbooks, plays, tasks, results)
        - path (for files)
        - key (for records)
        - ok, skipped, changed, failed and unreachable (for hosts)
    
    - Added support for searching playbooks by their full path or only part of it.
      For example, a playbook with the path ``/home/user/ansible/playbook.yml``
      can be found by searching for either ``user`` or the full path.
    
    - Searching for playbook names now also supports partial search.
    
    - Improved handling of non-ascii/binary output to prevent UnicodeEncodeError
      exceptions [3]
    
    - Standardized the search by status for playbooks, plays, tasks and results
    
    - The built-in development server now checks if psycopg2 or mysqlclient are
      installed before launching when using the postgresql or mysql database backend. [4]
    
    API client
    ----------
    
    - Added support for ignoring SSL verification [5]
    
    Plugins
    -------
    
    - Added the ``ARA_API_INSECURE`` setting to the callback plugin to ignore SSL
      verification.
    
    CLI
    ---
    
    - Added an ``ara-manage prune`` command to delete playbooks older than a specified
      amount of days. [6]
    
    Documentation
    -------------
    
    - Refreshed docs on installation
    - First iteration of documentation for the ``ara-manage`` commands
    - Docs now require the API server dependencies to be installed so CLI snippets
      can be included automatically with sphinxcontrib-programoutput.
    
    Upgrade notes
    -------------
    
    - 1.3.0 introduces a new SQL migration to move durations from the API to the
      database model. If upgrading from a previous version, you will need to run
      SQL migrations with ``ara-manage migrate``.
    
    Referenced or fixed issues
    --------------------------
    
    [1]: https://github.com/ansible-community/ara/issues/30
    [2]: https://github.com/ansible-community/ara/issues/68
    [3]: https://github.com/ansible-community/ara/issues/48
    [4]: https://github.com/ansible-community/ara/issues/63
    [5]: https://github.com/ansible-community/ara/issues/90
    [6]: https://github.com/ansible-community/ara/issues/31
    
  • 1.3.0rc1
    1.3.0rc1
    
    This is the first release candidate for the 1.3.0 stable release of ARA.
    
    Changes since 1.2.0:
    
    General
    -------
    
    - Removed hard requirement on python 3.6 due to the usage of f-strings.
      ARA should also work on python 3.5 now.
    
    Web user interface
    ------------------
    
    - Added a tab at the top of the playbook list to search, sort and filter by date
      - Search can be based on the playbook's name, path, or status
      - Sort can be ascending or descending for start date, end date or duration
      - Filter can show playbooks in the last 60 minutes, 24 hours, 7 days or 30 days
    - Fixed a bad link to the task file in the detailed result view
    
    API
    ---
    
    - Added support for searching date fields for playbooks, plays, tasks and results [1]
      For example:
    
        /api/v1/playbooks?started_before=2019-10-01T09:57:36.489016
        /api/v1/results??created_after=2019-10-01T09:57:36.489016
    
    - The duration of items is now calculated and stored in the database model
      instead of being calculated on demand by the API. This provides the ability to
      easily sort objects based on their duration.
      A SQL migration has been added as a result of this change.
    
    - Added support for ordering objects by most fields [2]
      For example:
    
        /api/v1/playbooks?order=id (ascending, oldest first)
        /api/v1/playbooks?order=-id (descending, most recent first)
    
      The currently supported fields available for sorting are:
        - created
        - updated
        - started (for playbooks, plays, tasks, results)
        - ended (for playbooks plays, tasks, results)
        - duration (for playbooks, plays, tasks, results)
        - path (for files)
        - key (for records)
        - ok, skipped, changed, failed and unreachable (for hosts)
    
    - Added support for searching playbooks by their full path or only part of it.
      For example, a playbook with the path ``/home/user/ansible/playbook.yml``
      can be found by searching for either ``user`` or the full path.
    
    - Searching for playbook names now also supports partial search.
    
    - Improved handling of non-ascii/binary output to prevent UnicodeEncodeError
      exceptions [3]
    
    - Standardized the search by status for playbooks, plays, tasks and results
    
    - The built-in development server now checks if psycopg2 or mysqlclient are
      installed before launching when using the postgresql or mysql database backend. [4]
    
    API client
    ----------
    
    - Added support for ignoring SSL verification [5]
    
    Plugins
    -------
    
    - Added the ``ARA_API_INSECURE`` setting to the callback plugin to ignore SSL
      verification.
    
    CLI
    ---
    
    - Added an ``ara-manage prune`` command to delete playbooks older than a specified
      amount of days. [6]
    
    Documentation
    -------------
    
    - Refreshed docs on installation
    - First iteration of documentation for the ``ara-manage`` commands
    - Docs now require the API server dependencies to be installed so CLI snippets
      can be included automatically with sphinxcontrib-programoutput.
    
    Upgrade notes
    -------------
    
    - 1.3.0 introduces a new SQL migration to move durations from the API to the
      database model. If upgrading from a previous version, you will need to run
      SQL migrations with ``ara-manage migrate``.
    
    Referenced or fixed issues
    --------------------------
    
    [1]: https://github.com/ansible-community/ara/issues/30
    [2]: https://github.com/ansible-community/ara/issues/68
    [3]: https://github.com/ansible-community/ara/issues/48
    [4]: https://github.com/ansible-community/ara/issues/63
    [5]: https://github.com/ansible-community/ara/issues/90
    [6]: https://github.com/ansible-community/ara/issues/31
    
  • 0.16.6
    0.16.6
    
    0.16.6 is a maintenance release for ARA 0.x.
    
    Changes since 0.16.5:
    
    - Fixed web application crash due to encoding/decoding of binary
      non-ascii content in task results
    - The sqlite middleware was adapted to support running under gunicorn.
    - ``python -m ara.setup.env`` now returns commands that use bash expansion to
      take into account existing environment variables
    
    Eventual end of life for ARA 0.x
    --------------------------------
    
    All new feature and development effort for more than a year has been spent on
    the master branch of ARA which is the basis of version 1.x releases.
    
    Users are encouraged to try the latest release of ARA and create an issue on
    GitHub if they encounter any issues or missing features.
    
    ARA 0.16.6 could be the last release of ARA 0.x if no major issues are found.
    
  • 0.16.6rc2
    0.16.6rc2
    
    This is the second release candidate for ara 0.16.6.
    
    Changes since 0.16.5:
    
    - Fixed web application crash due to encoding/decoding of binary
      non-ascii content in task results
    - The sqlite middleware was adapted to support running under gunicorn.
    
    Eventual end of life for ARA 0.x
    --------------------------------
    
    All new feature and development effort for more than a year has been spent on
    the master branch of ARA which is the basis of version 1.x releases.
    
    Users are encouraged to try the latest release of ARA and create an issue on
    GitHub if they encounter any issues or missing features.
    
    ARA 0.16.6 could be the last release of ARA 0.x if no major issues are found.
    
  • 0.16.6rc1
    0.16.6rc1
    
    This is the first release candidate for ara 0.16.6.
    
    Changes since 0.16.5:
    
    - Fixed web application crash due to encoding/decoding of binary
      non-ascii content in task results
    - The sqlite middleware was adapted to support running under gunicorn.
    
    Eventual end of life for ARA 0.x
    --------------------------------
    
    All new feature and development effort for more than a year has been spent on
    the master branch of ARA which is the basis of version 1.x releases.
    
    Users are encouraged to try the latest release of ARA and create an issue on
    GitHub if they encounter any issues or missing features.
    
    ARA 0.16.6 could be the last release of ARA 0.x if no major issues are found.
    
  • 1.2.0
    1.2.0
    
    This is the 1.2.0 stable release of ARA.
    
    Changes since 1.1.0:
    
    New bundled reporting interface
    -------------------------------
    
    - A new simple built-in web reporting interface is now bundled with the API server
    - The simple web reporting interface can be exported to static html with ``ara-manage generate <path>``
    
    API
    ---
    
    - An ``items`` field was added to playbook, plays and task objects to display the number of child references
    - The task file path is now available as task.path
    - Playbook labels as well as ansible_version are now always provided for playbook objects
    - The "created" and "updated" fields are now provided when querying a host list
    
    Settings
    --------
    
    - New setting to control the timezone used for storing and displaying data: ``ARA_TIME_ZONE``
    - New setting to provide a list of regex patterns for whitelisting CORS: ``ARA_CORS_ORIGIN_REGEX_WHITELIST``
    - The default for ``ARA_DISTRIBUTED_SQLITE_PREFIX`` was changed from /ara-api to /ara-report
    
    Other changes
    -------------
    
    - Significant performance improvements by reducing the amount of API calls to host and file endpoints by the callback plugin during playbook execution
    - A basic healthcheck has been implemented at ``/healthcheck/`` to allow simple monitoring of the interface and database connection
    - ``python -m ara.setup.env`` now returns commands that use bash expansion to take into account existing environment variables
    - The API clients will strip trailing slashes if they are provided in the endpoints
    - Removed a needless newline when generating the default settings.yaml file
    
    Upgrade notes
    -------------
    
    The new healthcheck feature adds a dependency on the django-health-check library
    and includes a SQL migration that needs to be run before it can be used.
    SQL migrations can be executed by running ``ara-manage migrate``.
    
  • 1.2.0b1
    1.2.0b1
    
    This is the first beta release for version 1.2.0 of ARA.
    
    Changes since 1.1.0:
    
    New bundled reporting interface
    -------------------------------
    
    - A new simple built-in web reporting interface is now bundled with the API server
    - The simple web reporting interface can be exported to static html with ``ara-manage generate <path>``
    
    API
    ---
    
    - An ``items`` field was added to playbook, plays and task objects to display the number of child references
    - The task file path is now available as task.path
    - Playbook labels as well as ansible_version are now always provided for playbook objects
    - The "created" and "updated" fields are now provided when querying a host list
    
    Settings
    --------
    
    - New setting to control the timezone used for storing and displaying data: ``ARA_TIME_ZONE``
    - New setting to provide a list of regex patterns for whitelisting CORS: ``ARA_CORS_ORIGIN_REGEX_WHITELIST``
    - The default for ``ARA_DISTRIBUTED_SQLITE_PREFIX`` was changed from /ara-api to /ara-report
    
    Other changes
    -------------
    
    - Significant performance improvements by reducing the amount of API calls to host and file endpoints by the callback plugin during playbook execution
    - A basic healthcheck has been implemented at ``/healthcheck/`` to allow simple monitoring of the interface and database connection
    - ``python -m ara.setup.env`` now returns commands that use bash expansion to take into account existing environment variables
    - The API clients will strip trailing slashes if they are provided in the endpoints
    - Removed a needless newline when generating the default settings.yaml file
    
    Upgrade notes
    -------------
    
    The new healthcheck feature adds a dependency on the django-health-check library
    and includes a SQL migration that needs to be run before it can be used.
    SQL migrations can be executed by running ``ara-manage migrate``.
    
  • 1.1.0
    1.1.0
    
    Changes since 1.0.1:
    - Added support for dynamically serving multiple sqlite databases
      dynamically from a single API server instance [1]
    - ara_record no longer instanciates it's own API client and will
      instead retrieve the client instance used by the callback.
    - Django's CONN_MAX_AGE database setting for configuring the
      duration of a database connection is now exposed [2]
    - The ARA API client timeout as configured by Ansible through the
      callback plugin is now always an integer.
    - The offline API client now has an argument to prevent SQL
      migrations from running automatically [3]
    
    For the ara_api Ansible role [4]:
    - The role no longer attempts to set up and manage a PID file when
      setting up a persistent service running with gunicorn.
    - The bundled selinux policy file for running out of a user's home
      directory has been updated and is now integration tested.
    - Added support and integration tests for deploying Django with the
      MySQL backend
    
    [1]: https://ara.readthedocs.io/en/latest/distributed-sqlite-backend.html
    [2]: https://ara.readthedocs.io/en/latest/api-configuration.html#ara-database-conn-max-age
    [3]: https://ara.readthedocs.io/en/latest/api-usage.html#ara-offline-api-client
    [4]: https://ara.readthedocs.io/en/latest/ansible-role-ara-api.html
    
  • 0.16.5
    0.16.5
    
    Changes since 0.16.4:
    
    - Updated references to the master git branch or documentation
      now that 0.x development work has been moved to stable/0.x
    
  • 1.0.1
    1.0.1
    
    Changes since 1.0.0:
    
    - Updated references to the feature/1.0 git branch or documentation
      now that 1.0 development work has been moved to master
    - Fixed an issue preventing the HTTP API client from being used unless
      the server dependencies had been installed.
    - Added support for customizing the amount of results per page returned
      by the API with ARA_PAGE_SIZE [1]
    - The ara_api role now sets up a basic selinux policy when running
      gunicorn out of a home directory on Red Hat based systems.
    
    [1]: https://ara.readthedocs.io/en/latest/api-configuration.html#ara-page-size
    
  • 1.0.0
    1.0.0
    
    This is the first release of ARA on top of a new framework and API,
    dubbed version 1.0.
    
    This new release marks the deprecation of ARA 0.x and while full feature parity
    has not yet been achieved, we are moving forward and we will iterate to add
    missing features in future releases.
    
    Main changes from ARA 0.x:
    
    - The backend has been re-written from Flask to Django/Django-rest-framework
    - A new API as well as built-in API clients are available to record and query playbook results
    - The project's dependencies have been decoupled: the Ansible plugins, API backend and web interface can be installed independently from one another
    - The web interface has been re-written as a standalone project -- ara-web: https://github.com/ansible-community/ara-web
    
    In summary, all the different components before 1.0, including the web interface,
    would communicate directly with the database model.
    
    After 1.0, these components communicate with the new REST API which results in
    easier development, maintenance and integration.
    
  • 1.0.0rc1
    1.0.0rc1
    
    This is the first release candidate for ARA 1.0.
    If there are no serious issues with this release, future fixes, improvements
    and features will ship in dot releases after 1.0.
    
    Changes since 1.0.0b2:
    
    - Added missing "changed" and "ignore_error" properties to results
    
    Misc:
    
    - Added frequently asked questions to docs [1]
    - Added docs on how to contribute to ara [2]
    
    [1]: https://ara.readthedocs.io/en/feature-1.0/faq.html
    [2]: https://ara.readthedocs.io/en/feature-1.0/contributing.html
    
  • 1.0.0b2
    1.0.0b2
    
    This is the second beta milestone release for ARA 1.0.
    If there are no serious issues with this release, future fixes, improvements
    and features will ship in dot releases after 1.0.
    
    Changes since 1.0.0b1
    =====================
    
    - Added support for setting playbook labels through Ansible variables
    - The ara_api role now uses ansible_user_id instead of ansible_user when
      setting up the gunicorn systemd service. [1]
    - The ara Ansible roles now use
        virtualenv_command: /usr/bin/python3 -m venv
      instead of
        virtualenv_python: python3
      See GitHub issue for details [2]
    - Bugfix: Fixed a regression when recording tasks from Ansible 2.8 [3]
    - Removed the concept of host aliases
    - The STATIC_ROOT directory is no longer created automatically since it
      is not required.
    - Django timezone settings have been enabled and have been set to UTC.
    - Added documentation on setting playbook names and labels [4]
    - Added documentation on ara_record [5]
    - Added documentation for configuring Ansible to use ARA [6]
    - Added documentation for configuyring ARA Ansible plugins [7]
    
    [1]: https://github.com/ansible-community/ara/issues/44
    [2]: https://github.com/ansible-community/ara/issues/43
    [3]: https://github.com/ansible-community/ara/issues/46
    [4]: https://ara.readthedocs.io/en/feature-1.0/playbook-names-and-labels.html
    [5]: https://ara.readthedocs.io/en/feature-1.0/ara-record.html
    [6]: https://ara.readthedocs.io/en/feature-1.0/ansible-configuration.html
    [7]: https://ara.readthedocs.io/en/feature-1.0/ara-plugin-configuration.html
    
  • 0.16.4
    0.16.4
    
    This is a stable release of ARA, 0.16.4.
    
    ***
    WARNING: Please note that the next major version of ARA, 1.0, is
             currently in beta and is not backwards compatible with ARA 0.x.
             In order to avoid upgrading unexpectedly when 1.0 is released,
             we recommend pinning ara to <1.0.0 in your scripts and requirements.
    ***
    
    Changelog since 0.16.3:
    - Fixed a regression when saving tasks with Ansible 2.8 [1]
    
    [1]: https://github.com/ansible-community/ara/issues/46
    
  • 1.0.0b1
    1.0.0b1
    
    This is the first beta milestone release for ARA 1.0.
    
    Main changes since 1.0.0a4
    ==========================
    
    - API: "/api/v1/info" has moved to "/" and "/" was improved with a link to the API index
    - API: CORS_ORIGIN_WHITELIST now requires the scheme (http/https) as per django-cors-headers
    - API: Playbook arguments are now provided when listing playbooks at /api/v1/playbooks
    - Clients: API clients now support authenticating with specified credentials
    - Ansible roles: The ara_api role now supports using postgresql for the server database
    
    Packaging
    =========
    
    The API server dependencies are now optional when installing ARA 1.0.
    They can be installed by specifying the [server] extra requirement:
    
        pip install [--pre] ara[server]
    
    Local or offline usage of ARA 1.0 still requires the API server dependencies
    installed but the server does not need to be running.
    
    In addition, when using postgresql, the psycopg2 library can be installed by
    specifying the [postgresql] requirement:
    
        pip install [--pre] ara[server,postgresql]
    
    Miscellaneous
    =============
    
    - The code review and CI infrastructure was rebranded from OpenStack to OpenDev
    - The GitHub mirror is now available at https://github.com/ansible-community/ara
    - Bug, issue and feature tracking have been moved to https://github.com/ansible-community/ara/issues
    
  • 1.0.0a4
    1.0.0a4
    
    This is the fourth alpha milestone tag for ARA 1.0.
    
    Main changes:
    - An API refactor has landed to return the right things in the right
    context, bringing us closer to a stable API
    - There is no longer a dedicated model and API for stats, they are now
    part of the hosts API.
    - The ara.setup.* python modules to help configure Ansible with ARA have
    been ported from 0.x to 1.0.
    - Integration tests have been made easier to run
    - Improvements to documentation
    
    You can find the full list of changes since 1.0.0a3 on GitHub:
    https://github.com/ansible-community/ara/compare/1.0.0a3...1.0.0a4
    
  • 1.0.0a3
    1.0.0a3
    
    This is the third alpha milestone tag for ara 1.0.
    
    Main changes:
    - The code and git repositories for ara-server, ara-clients and
    ara-plugins have been merged back into the feature/1.0 branch of ara [1].
    - Documentation for ARA 1.0 is live on readthedocs [2]
    - There is a new built-in Ansible role for deploying the API server [3]
    - There is a new built-in Ansible role for deploying the web client [4]
    
    [1]: https://github.com/openstack/ara/tree/feature/1.0
    [2]: https://ara.readthedocs.io/en/feature-1.0/
    [3]: https://ara.readthedocs.io/en/feature-1.0/ansible-role-ara-api.html
    [4]: https://ara.readthedocs.io/en/feature-1.0/ansible-role-ara-web.html
    
  • 0.16.3
    0.16.3
    
    This is a stable release of ARA, 0.16.3.
    
    ***
    WARNING: Please note that the next major version of ARA, 1.0, will contain
             backwards incompatible changes due to significant refactor work
             involving core back end code as well as the SQL database schema.
    ***
    
    Changelog:
    - Update integration tests to target latest versions of Ansible (2.7.6,
    2.6.12 and 2.5.14)
    - Adjust how CLI options are saved to support the upcoming release of
      Ansible, 2.8.