
Security News
TypeScript is Porting Its Compiler to Go for 10x Faster Builds
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
@globocom/backstage-functions
Advanced tools
Backstage Functions is an Open Source Serverless Platform able to store and execute code.
Which languages are supported? Currently, only Javascript.
Is it based on events? Not yet.
How the code execution happens in an isolated way? It uses the Backstage Functions Sandbox.
git clone https://github.com/backstage/functions.git
make setup
make run
To format your log in json
, please run:
export LOG_APP_FORMAT=json
mkdir functions
cd functions
curl 'https://raw.githubusercontent.com/backstage/functions/master/docker-compose.yml' > docker-compose.yml
docker-compose up
Your function will have a file, which you define any name you want, and it has to have a function called main
, with two parameters: req
and res
. Req represents the Request
and Res represents the Response
.
At the end of your code, you'll have to use the send
method.
function main(req, res) {
const name = (req.body && req.body.name) || "World"
res.send({ say: `Hello ${name}!` })
}
To set your function, you can make a PUT
request to /functions/:namespace/:name
:
curl -i -X PUT http://localhost:8100/functions/example/hello-world \
-H 'content-type: application/json' \
-d '{"code":"function main(req, res) {\n const name = (req.body && req.body.name) || \"World\"\n res.send({ say: `Hello ${name}! Nice meeting you...` })\n}\n"}'
Ps: if it doesn't exists, it will be created
To delete your function, you can make a DELETE
request to /functions/:namespace/:name
:
curl -i -X DELETE http://localhost:8100/functions/example/hello-world \
-H 'content-type: application/json'
To execute a function, you can make a PUT
request to /functions/:namespace/:name/run
:
curl -i -X PUT http://localhost:8100/functions/example/hello-world/run \
-H 'content-type: application/json'
The result will be something like:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 22
ETag: W/"16-soBGetwJPBLt8CqWpBQu+A"
Date: Tue, 11 Oct 2016 16:51:04 GMT
Connection: keep-alive
{"say":"Hello World!"}
If one needs to pass an object in the request, the payload is executed:
curl -i -X PUT http://localhost:8100/functions/example/hello-world/run \
-H 'content-type: application/json' \
-d '{"name": "Pedro"}'
The result will be something like:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 22
ETag: W/"16-Ino2/umXaZ3xVEhoqyS8aA"
Date: Tue, 11 Oct 2016 17:13:11 GMT
Connection: keep-alive
{"say":"Hello Pedro!"}
To execute many functions in a pipeline, you can make a PUT
request to /functions/pipeline
:
// Function0
function main(req, res) {\
res.send({x: req.body.x * 10});
}
// Function1
function main(req, res) {
res.send({x: req.body.x * 20});
}
curl -g -i -X PUT 'http://localhost:8100/functions/pipeline?steps[0]=namespace/function0&steps[1]=namespace/function1' \
-H 'content-type: application/json'
-d '{"x": 1}'
Considering the curl above, the pipeline result would be like this:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 22
ETag: W/"16-Ino2/umXaZ3xVEhoqyS8aA"
Date: Tue, 11 Oct 2016 17:13:11 GMT
Connection: keep-alive
{"x": 200}
FAQs
Remote serverless code executor
The npm package @globocom/backstage-functions receives a total of 17 weekly downloads. As such, @globocom/backstage-functions popularity was classified as not popular.
We found that @globocom/backstage-functions demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 11 open source maintainers collaborating on the project.
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.
Security News
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.