An administration panel and server-side facade for Hootsuite's Dark Launch codes. You can use this admin panel to create and edit Dark Launch codes in various contexts and data centres. In addition, there is a history tab in which you can see all the changes made to the codes.
Note: Before logging in, you will need to create a user. See first test under cURL Tests for details on creating a user.
- Consul
- PHP
- MongoDB
- MongoDB PHP Driver (http://docs.mongodb.org/ecosystem/drivers/php/)
config/autoload/local.php
return array(
'mongo' => array(
'url' => 'mongodb://<user>:<pass>@<host>:<port>/<database-name>',
'name' => '<database-name>',
),
'consul' => array(
'host' => 'localhost',
'port' => '8500'
),
);
public/app/config.js
"API_URL" : "http://127.0.0.1",
Ensure you have cask plugin installed for homebrew:
$ brew install caskroom/cask/brew-cask
You can then easily install Consul with:
$ brew cask install consul
To install Consul, find the appropriate package for your system and download it from here: https://www.consul.io/downloads.html
Unzip the package and copy the Consul binary to somewhere on the PATH so that it can be executed.
- On Unix systems, ~/bin and /usr/local/bin are common installation directories, depending on if you want to restrict the install to a single user or expose it to the entire system.
- On Windows systems, you can put it wherever you would like, as long as that location is on the %PATH%.
To run the Consul agent, enter this into your Terminal/Command Prompt:
$ consul agent -server -bootstrap-expect 1 -data-dir <data-directory>
<data-directory>
should be an initially empty directory created for this purpose
For testing purposes, you can easily create a MongoDB at https://mongolab.com
For ease of setup, you may name your database "nightowl". All Collections will be created automatically as they are required.
The simplest way to get started if you are using PHP 5.4 or above is to start the internal PHP cli-server in the root directory:
php -S 0.0.0.0:80 -t public/ public/index.php
This will start the cli-server on port 8080, and bind it to all network interfaces.
**Note: ** The built-in CLI server is for development only.
To setup apache, setup a virtual host to point to the public/ directory of the project and you should be ready to go! It should look something like below:
Note: Ensure that "AllowEncodedSlashes NoDecode" is set.
<VirtualHost *:80>
AllowEncodedSlashes NoDecode
ServerName 127.0.0.1
DocumentRoot /path/to/nightowl/public
SetEnv APPLICATION_ENV "development"
<Directory /path/to/nightowl/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
All requests should return JSON data. If an empty JSON array is returned, add "-i" to the command to see the response headers. If a status of 401 is returned, the session has expired and you will need to login again.
curl -H "Content-type: application/json" -c cookies.txt -X POST -d "{\"name\":\"test_user\", \"pass\":\"password\"}" http://127.0.0.1/auth/create
curl -H "Content-type: application/json" -c cookies.txt -X POST -d "{\"name\":\"test_user\", \"pass\":\"password\"}" http://127.0.0.1/auth/login
curl -H "Content-type: application/json" -c cookies.txt -b cookies.txt -X POST -d "{\"restriction\":\"boolean\", \"value\":\"true\", \"description\":\"test code\", \"availableToJS\":\"true\"}" http://127.0.0.1/codes/dc1/test_key
curl -H "Content-type: application/json" -c cookies.txt -b cookies.txt -X GET http://127.0.0.1/codes/dc1/test_key
curl -H "Content-type: application/json" -c cookies.txt -b cookies.txt -X POST -d "{\"restriction\":\"boolean\", \"value\":\"true\", \"description\":\"test code\", \"availableToJS\":\"false\"}" http://127.0.0.1/codes/dc1/test_key
curl -H "Content-type: application/json" -c cookies.txt -b cookies.txt -X GET http://127.0.0.1/audit/%7B%22code%22:%7B%22$regex%22:%22test_key%22,%22$options%22:%22-i%22%7D%7D
curl -H "Content-type: application/json" -c cookies.txt -b cookies.txt -X DELETE http://127.0.0.1/codes/dc1/test_key
curl -H "Content-type: application/json" -c cookies.txt -b cookies.txt -X DELETE http://127.0.0.1/auth/logout
curl -H "Content-type: application/json" -c cookies.txt -b cookies.txt -X GET http://127.0.0.1/codes/dc1/test_key -i
(Response status will be 401 with message "Auth Token is Required"