Skip to content
This repository was archived by the owner on Feb 4, 2018. It is now read-only.

Commit 0f1578c

Browse files
committed
Enable cors on deploy and apps
1 parent 735f783 commit 0f1578c

File tree

5 files changed

+35
-8
lines changed

5 files changed

+35
-8
lines changed

conf/cors.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"origin": "*",
3+
"optionsSuccessStatus": 200
4+
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"brfs": "^1.4.3",
4242
"browser-request": "^0.3.3",
4343
"browserify": "^13.0.0",
44+
"cors": "^2.8.1",
4445
"date-and-time": "^0.3.0",
4546
"dom-css": "^2.0.0",
4647
"envify": "^3.4.1",

scripts/postinstall.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,29 @@
11
var fs = require('fs')
22
var path = require('path')
33

4-
var fileName = 'web.conf'
4+
var fileName1 = 'web.conf'
5+
var fileName2 = 'cors.conf'
56

67
var binderDir = path.join(process.env['HOME'], '.binder')
7-
var src = path.join(__dirname, '../conf/main.json')
8-
var dst = path.join(binderDir, fileName)
8+
9+
var src1 = path.join(__dirname, '../conf/main.json')
10+
var dst1 = path.join(binderDir, fileName1)
11+
12+
var src2 = path.join(__dirname, '../conf/cors.json')
13+
var dst2 = path.join(binderDir, fileName2)
914

1015
var dirExists = fs.existsSync(binderDir)
11-
var fileExists = fs.existsSync(dst)
16+
var fileExists1 = fs.existsSync(dst1)
17+
var fileExists2 = fs.existsSync(dst2)
18+
1219
if (!dirExists) {
1320
fs.mkdirSync(binderDir)
1421
}
15-
if (!fileExists) {
16-
fs.createReadStream(src).pipe(fs.createWriteStream(dst))
22+
23+
if (!fileExists1) {
24+
fs.createReadStream(src1).pipe(fs.createWriteStream(dst1))
25+
}
26+
27+
if (!fileExists2) {
28+
fs.createReadStream(src2).pipe(fs.createWriteStream(dst2))
1729
}

server/cors-settings.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
var path = require('path')
2+
var fs = require('fs')
3+
4+
var contents = fs.readFileSync(path.join(process.env['HOME'], '.binder/cors.conf'), 'utf8')
5+
module.exports = JSON.parse(contents)

server/index.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var expressWs = require('express-ws')
55
var bodyParser = require('body-parser')
66
var app = express()
77
var http = require('http').Server(app)
8+
var cors = require('cors');
89
var io = require('socket.io')(http)
910
var assign = require('object-assign')
1011
var merge = require('lodash.merge')
@@ -20,6 +21,10 @@ app.use('/js', express.static(path.join(__dirname, '../public/js')))
2021
app.use('/css', express.static(path.join(__dirname, '../public/css')))
2122
app.use('/assets', express.static(path.join(__dirname, '../public/assets')))
2223

24+
// CORS options
25+
26+
var launchCORSOptions = require('./cors-settings')
27+
2328
// set once the server is started
2429
var binder = null
2530

@@ -63,15 +68,15 @@ app.get('/validate/:name', function (req, res) {
6368

6469
// API endpoints
6570

66-
app.get('/api/deploy/:templateName', function (req, res) {
71+
app.get('/api/deploy/:templateName', cors(launchCORSOptions), function (req, res) {
6772
var name = req.params.templateName
6873
binder.deployBinder(name, function (err, status) {
6974
if (err) return res.status(500).end()
7075
return res.json(status)
7176
})
7277
})
7378

74-
app.get('/api/apps/:templateName/:id', function (req, res) {
79+
app.get('/api/apps/:templateName/:id', cors(launchCORSOptions), function (req, res) {
7580
var name = req.params.templateName
7681
var id = req.params.id
7782
binder.getDeployStatus(name, id, function (err, status) {

0 commit comments

Comments
 (0)