Steelpenny
nodejs based API for COINS
Basic Install
- Install the package: (global install)
- Configure your environment according to the REQUIREMENTS.md doc
- Run the API server:
/usr/bin/steelpenny
- Make sure your user is the same owner as the logs or has group write permission.
Basic Development Install
- Configure your environment according to the REQUIREMENTS.md doc
- Install the dependencies:
$ cd /coins/quarterback/packages/steelpenny
$ npm i
If you are a COINS developer, use: sudo -H -u ansible npm i
- Run the API:
$ node lib/index.js
Note: Current working directory should be: /coins/quarterback/packages/steelpenny
COINS Internal Usage
- To start the server as a daemon, ansible-provisioned servers should have startup method:
sudo service steelpenny start
- To enable monit monitoring:
sudo monit monitor steelpenny
Design Specifications
Code
Please refer to CONTRIBUTING.md for details about the code structure, and how
to add to it.
Response Format
All responses are a JSON string which parses to an object of the following format:
{
data: [ ... ],
error: null | {},
stats: {will eventually include performance data}
}
It is worth noting that the data property will always be an array, even if only a single value is requested/retrieved.
The error property will be null if no errors have occurred.
If an error did occur, then the error object will take the following form:
{
error: '...',
message: '...',
statusCode: ###,
debugData: {custom debug data}
}
Endpoints
Base URL
All endpoints have a prefix of /api/v#.#.#
where v#.#.#
is the version in
package.json
.
The one exception to the above rule is GET /api/version
, which can be used to
retrieve the version via the API itself.
Protocol
By default, this server starts accepting HTTP
connections on port 8080.
To use HTTPS, place a reverse proxy server in front of this service. production
and staging environments should listen for HTTPS connections on port 443, while
development systems should listen on port 8443.
Other Endpoints
Please refer to the swagger documentation that is auto-generated by this repo.
To view it, start this server npm start
, and navigate to the base url +
/swagger/documentation
(e.g. https://coins-api.mrn.org/swagger/documentation).
Troubleshooting
If things aren't working, go down this quick checklist.
If you miss any of these requirements, remove all node modules and reinstall them
after installing the requirements.