node-app-server

1.0.2 • Public • Published

Node App Server

This server is a generic static file server for Lingotek Apps

Download

  • Include the following line in your package.json and then run npm install: "node-app-server": "git@bitbucket.org:lingotek/node-app-server.git",
  • Periodically run npm update to ensure you're on the latest version.
  • This will likely published so that all that's required is 'npm install node-app-server --save' in the future

Requirements

  • A directory named "public," the app server will statically serve all the content inside public
  • A file named auth_redirect.html that is published to the public directory with the following form, modify to meet your app specifications (the token parsing will likely change in the future)
#!html

<html>
  <head>
    <script>
    var auth_token, expiration, params;
    params = window.location.hash.split(/[=&]/);
    auth_token = params[1];
    expiration = params[3];
    var date = new Date(new Date().getTime() + (5*3600000));
    var cookiestring ="tm_management_auth_token=" + auth_token + ";expires=" + date.toGMTString() + ";Path=/;";
    document.cookie = cookiestring;
    window.location = "/tm-management/";
    </script>
  </head>
  <body></body>
</html>
  • A json file for your server config with the following form (typically named server-config.json):
#!json
{
  "root": "tm-management",  //server root, optional, defaults to '/'
  "app_id": "653cf7eb-b352-4fb8-a29c-1b129c31f0a1", //currently referred to internally as client id, each app needs one
  "auth_token_name":"tm_management_auth_token",  //the auth token for a specific app should have a name unique to that app
  "app_url_key":"tm_management_url",    //the zookeeper key for the app url
  "app_port_key":"tm_management_port",  //the zookeeper key for the app port
  "zookeeper_properties": [ 
    {"name": "sentinel_url", "zk_path": "/lingopoint/sentinel/url", "default": "https://sso.lingotek.com"},
    {"name": "yodel_url", "zk_path": "/lingopoint/yodel/url", "default": "http://10.0.11.33:11010"},
    {"name": "tm_management_port", "zk_path": "/lingopoint/dashboard/port", "default": 3011},
    {"name": "tm_management_url", "zk_path": "/lingopoint/dashboard/url", "default": "http://10.0.11.33:3011"}
  ]
}

Setup

  • Require 'node-app-server' in your server.js
  • Require your server-config.json and pass it into the app server
  • Notice the AppServer provides an emitter that fires when zookeeper has loaded. This is useful for writing environment specific information to your frontend app
#!javascript

var serverConfig = require('./server-config.json');
var AppServer = require('./node_modules/node-app-server/app-server.js');
var fs = require('fs');
var appServer = new AppServer(serverConfig);
appServer.emitter.on('zookeeper_loaded', function(env) {
  fs.writeFile('./public/environment.js', `window.ltk_environment = {sso_url: '${env.sentinel_url}'};`, function(){});
});

Readme

Keywords

none

Package Sidebar

Install

npm i node-app-server

Weekly Downloads

0

Version

1.0.2

License

UNLICENSED

Last publish

Collaborators

  • carloscampos.galo