Socket
Socket
Sign inDemoInstall

clientconfig

Package Overview
Dependencies
1
Maintainers
2
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    clientconfig

Simple way to pass config items from server to client


Version published
Weekly downloads
103
decreased by-8.04%
Maintainers
2
Install size
12.3 kB
Created
Weekly downloads
 

Readme

Source

clientconfig

Super simple mechanism for passing config items, such as API connection URLs, debug modes, etc from the server to client.

This is handy for apps built as single page apps where you're sending a pre-built js application to the client but still want to be able to pass it configuration information.

This is a very simple client side module for browserify. For more info on the approaches used here check out humanjavascript.com.

If you want to use it as a standalone, or with AMD etc. You can use clientconfig.bundle.js. It has no dependencies.

Since we're using cookies, here are some pertinent warnings as so aptly put by @lauriro here:

Unless sent over a secure channel (such as HTTPS), the information in cookies is transmitted in the clear text.

All sensitive information conveyed in these headers is exposed to an eavesdropper. A malicious intermediary could alter the headers as they travel in either direction, with unpredictable results. A malicious client could alter the Cookie header before transmission, with unpredictable results.

In short, don't send sensitive info this way unless you're on https.

How does it work?

Clientconfig simply looks for a cookie named config parses it as JSON and immediately wipes it out to avoid burdening subsequent requests with that extra overhead.

How do I use it?

On the server-side when serving up your request set a cookie containing the values you'd like to pass to the client in JSON.

If you're using node.js, express and getconfig it'd work like this:

sample config file:

{
    "client": {
        "apiConnectionUrl": "https://dev.api.com",
        "debugMode": true,
        "enviroment": "dev"
    },
    "otherServerConfigItems": {
        "dbpasswords": "etc"
    }
}

sample server:

var app = require('express')(),
    config = require('getconfig');

// our sample request handler
app.get('/app', function (req, res) {
    // here we set a cookie called "config" to a JSON encoded settings object
    res.cookie('config', JSON.stringify(config.client));
    // then render the html and respond
    res.render('app');
});

app.listen(80);

sample client usage:

var config = require('clientconfig');

console.log(config.apiConnectionUrl); // prints out connection url from server config JSON file

Installing

npm i clientconfig

Add it to your clientmodules or user browserify to include it in your app. voila!

Feedback

If you dig it, follow @HenrikJoreteg on the twitterwebs. If not, file issues or send pull requests :)

License

MIT

FAQs

Last updated on 05 Dec 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc