David Moreau Simard

5 minute read

The first beta milestone for ARA 1.0 is out and ready for testing !

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:

# Note: --pre is required when installing an ARA 1.0 pre-release
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] extra requirement:

pip install [--pre] ara[server,postgresql]

Miscellaneous

Want to try it out ?

The live demos on api.demo.recordsansible.org and web.demo.recordsansible.org have been updated with this latest beta release.

If you want a quick start, you can have a look at the README or there is otherwise plenty of documentation available to get started:

There are even built-in Ansible roles to help you set up an API server as well as the new web interface:

In fact, these roles are the ones used to deploy the live demos on api.demo.recordsansible.org and web.demo.recordsansible.org:

live-demo-playbook

You’ll find the Ansible roles in the source repository.

Help wanted

ARA is a free and open source community project and it needs help from users and contributors for maintenance, new features and improvements.

As a user, your feedback is invaluable to know if the project is living up to your expecations.

Was the documentation clear ? Did you encounter an issue when trying ARA ? Do you have an idea for a new feature ? Join the community and chat with us on IRC or on Slack to tell us about it !

As a contributor, there is a wide range of things we could use your help for.

Issues and features are now tracked on GitHub for ara, ara-web as well as ara-infra.

The API server is based on Django and django-rest-framework while the web interface is a stateless javascript application built with patternfly and react.

With this beta release, the API should be mostly settled although we are interested in feedback for the database model if you are familiar with Django.

The web interface needs the most love but hey, it works and it is able to query the API successfully.

All commits are code reviewed, unit and integration tested before being merged to the project.

If you have time to contribute, I can help point you in the right direction to get started.

You can find me as dmsimard on IRC, Slack and Twitter.

After the beta: releasing ARA 1.0

Installing and configuring ARA 1.0 is very similar to ARA 0.x on purpose.

However, there will be no support for upgrading an existing 0.x database to 1.0. The backend and database model is now based on Django instead of Flask and everything was essentially re-written from scratch.

If you are currently using ARA 0.x, now might be a good time to make sure you don’t upgrade unexpectedly:

It is important to note that 1.0 will be released without full feature parity with 0.x. It was a tough decision to make but I’m convinced the new API provides too much value to keep it unreleased while we implement the missing features.

Namely, these are some of the things that will be missing from the 1.0 release:

  • A command-line interface (ex: ara playbook list)
  • Generating and exporting data (ex: ara generate html, ara generate junit)
  • An approach for large scale distributed environments similar to sqlite over http in 0.x

If these features are important to you, we could use your help to port them to use the new API or you can hold out until they are eventually shipped in a future release.

Otherwise, the plan is to have a sufficient amount of users try out the beta to see if there are any bugs or gaps we might have missed and then tag the release once these have been resolved.

Soon ™