# Apache Fineract CN Identity Manager [![Build Status](https://api.travis-ci.com/apache/fineract-cn-identity.svg?branch=develop)](https://travis-ci.com/apache/fineract-cn-identity)  [![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/apache/fineract-cn-identity)](https://hub.docker.com/r/apache/fineract-cn-identity/builds)

This project provides identity management for Apache Fineract CN services.
[Read more](https://cwiki.apache.org/confluence/display/FINERACT/Fineract+CN+Project+Structure#FineractCNProjectStructure-identity).

## Abstract
Apache Fineract CN is an application framework for digital financial services, a system to support nationwide and cross-national financial transactions and help to level and speed the creation of an inclusive, interconnected digital economy for every nation in the world.

## Versioning
The version numbers follow the [Semantic Versioning](http://semver.org/) scheme.
In addition to MAJOR.MINOR.PATCH the following postfixes are used to indicate the development state.

* BUILD-SNAPSHOT - A release currently in development.
* RELEASE - _General availability_ indicates that this release is the best available version and is recommended for all usage.

The versioning layout is {MAJOR}.{MINOR}.{PATCH}-{INDICATOR}[.{PATCH}]. Only milestones and release candidates can  have patch versions. Some examples:

1.2.3-BUILD-SNAPSHOT
1.3.5-RELEASE

## License
See [LICENSE](LICENSE) file.
