Metadata-Version: 2.1
Name: ssmash
Version: 2.0.1
Summary: SSM AppConfig Storage Helper
Home-page: https://github.com/garyd203/ssmash
Author: Gary Donovan
Author-email: gazza@gazza.id.au
License: GNU Affero General Public License v3
Project-URL: Documentation, https://ssmash.readthedocs.io/en/latest/
Project-URL: Source, https://github.com/garyd203/ssmash
Project-URL: Tracker, https://github.com/garyd203/ssmash/issues
Keywords: ssmash application-configuration configuration AWS cloudformation infrastructure-as-code
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Software Development
Classifier: Topic :: System :: Systems Administration
Requires-Dist: click (<8,>=7.0)
Requires-Dist: PyYAML (==5.1)
Requires-Dist: flying-circus (==0.6.5)
Requires-Dist: inflection (==0.3.1)

======
ssmash
======


.. image:: https://img.shields.io/pypi/v/ssmash.svg
        :target: https://pypi.python.org/pypi/ssmash

.. image:: https://img.shields.io/pypi/pyversions/ssmash.svg
        :target: https://pypi.python.org/pypi/ssmash
        :alt: Python versions

.. image:: https://readthedocs.org/projects/ssmash/badge/?version=latest
        :target: https://ssmash.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

.. image:: https://img.shields.io/pypi/dm/ssmash.svg
        :target: https://pypi.python.org/pypi/ssmash
        :alt: Downloads

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
        :target: https://github.com/ambv/black
        :alt: Code style: black

`ssmash <https://ssmash.readthedocs.io>`_, the SSM AppConfig Storage Helper,
is an easy-to-use application configuration management tool for AWS
deployments. You specify hierarchical configuration values in a simple YAML
file, and ``ssmash`` will turn that into an AWS CloudFormation file that
stores your configuration values in the SSM Parameter Store.

Installation
------------

Install ``ssmash`` using ``pip``, the standard python package installer:

.. code-block:: console

   $ pip install ssmash

Example
-------

Suppose you have an input file like this:

.. code-block:: yaml

    acme:
        shipping-labels-service:
            block-coyotes: true
            explosive-purchase-limit: 1000
            greeting: hello world

Then run ``ssmash``:

.. code-block:: console

    $ ssmash -i acme_prod_config.yaml -o cloud_formation_template.yaml
    $ aws cloudformation deploy \
        --stack-name "acme-prod-config" --template-file cloud_formation_template.yaml \
        --no-fail-on-empty-changeset

You will now have the following parameters in AWS Systems Manager, that can
be loaded as a string inside your application:

* ``/acme/shipping-labels-service/block-coyotes`` = "true"
* ``/acme/shipping-labels-service/explosive-purchase-limit`` = "1000"
* ``/acme/shipping-labels-service/greeting`` = "hello world"




=========
Changelog
=========

All notable changes to this project will be documented in this file.

The format is based on `Keep a Changelog <https://keepachangelog.com/en/1.0.0/>`_,
and this project adheres to `Semantic Versioning <https://semver.org/spec/v2.0.0.html>`_.


v2.0.1 (2019-06-28)
-------------------

Fixed
~~~~~
* Couldn't run script

v2.0.0 (2019-06-28)
-------------------

Changed
~~~~~~~
* `#22 <https://github.com/garyd203/ssmash/issues/22>`_ : Change command line
  API so that the input and output files are options, rather than arguments.
* `#22 <https://github.com/garyd203/ssmash/issues/22>`_ : Change command line
  API so that invalidating an ECS Service is done through a chained
  sub-command, rather than additional options.

Added
~~~~~
* `#8 <https://github.com/garyd203/ssmash/issues/8>`_ : Support lists of plain
  values, which are stored as a SSM StringList parameter

Removed
~~~~~~~
* You can't specify input and output files as positional arguments any more.
  Use `--input-file FILENAME` and `--output-file FILENAME` instead.
* The `--invalidate-ecs-service` and `--invalidation-role` options have been
  replaced with the `invalidate-ecs` command.

v1.1.0 (2019-06-05)
-------------------

Added
~~~~~
* Be able to automatically invalidate an existing ECS Service as part of the
  parameter deployment, so that it picks up the new configuration.

v1.0.0 (2019-05-30)
-------------------

v1.0.0-rc1 (2019-05-24)
-----------------------

Added
~~~~~
* ``ssmash`` script to create String SSM Parameters from a simple config file stored in YAML
* Basic documentation in README

v0.1.0 (2019-05-14)
-------------------

Added
~~~~~
* First release on PyPI.
* Cookiecutter skeleton only, no functionality


