Security News
How Threat Actors are Abusing GitHub’s File Upload Feature to Host Malware
GitHub is susceptible to a CDN flaw that allows attackers to host malware on any public repository.
couchapp
Advanced tools
Readme
Install node.
Install npm.
$ git clone repo $ cd node.couchapp.js $ npm install $ npm link .
$ couchapp help couchapp -- utility for creating couchapps Usage - old style with single app.js: couchapp <command> app.js http://localhost:5984/dbname [opts] Usage - new style with multiple app files: directory based config specified by switch - multiple app files and pre- and post-processing capability) couchapp -dc < <appconfigdirectory> http://localhost:5984/dbname Commands: push : Push app once to server. sync : Push app then watch local files for changes. boiler : Create a boiler project. serve : Serve couchapp from development webserver you can specify some options -p port : list on port portNum [default=3000] -d dir : attachments directory [default='attachments'] -l : log rewrites to couchdb [default='false']
Directory-based config: -dc (directory config) switch uses multiple config files in the directory specified by <appconfigdirectory> Any file with a filename that begins with "app" will be executed. Additionally (i) if the app config directory contains file beforepushsync.js then this will be executed before any of the app files have run (ii) if the app config directory contains file afterpushsync.js then this will be executed after all of the app files have run beforepushsync.js and afterpushsync.js can be used to perform any before/after processing, using node.js code for example. The sample afterpushsync.js shows lookup data being added to CouchDB after the CouchApp has been pushed.
app.js example:
var couchapp = require('couchapp') , path = require('path'); ddoc = { _id: '_design/app' , views: {} , lists: {} , shows: {} } module.exports = ddoc; ddoc.views.byType = { map: function(doc) { emit(doc.type, null); }, reduce: '_count' } ddoc.views.peopleByName = { map: function(doc) { if(doc.type == 'person') { emit(doc.name, null); } } } ddoc.lists.people = function(head, req) { start({ headers: {"Content-type": "text/html"} }); send("<ul id='people'>\n"); while(row = getRow()) { send("\t<li class='person name'>" + row.key + "</li>\n"); } send("</ul>\n") } ddoc.shows.person = function(doc, req) { return { headers: {"Content-type": "text/html"}, body: "<h1 id='person' class='name'>" + doc.name + "</h1>\n" } } ddoc.validate_doc_update = function (newDoc, oldDoc, userCtx) { function require(field, message) { message = message || "Document must have a " + field; if (!newDoc[field]) throw({forbidden : message}); }; if (newDoc.type == "person") { require("name"); } } couchapp.loadAttachments(ddoc, path.join(__dirname, '_attachments'));
Local development server example.
Start the server:
couchapp serve app.js http://localhost:5984/example_db -p 3000 -l -d attachments
Now you can access your couchapp at http://localhost:3000/ . Code, hack and when you are happy with the result simply do:
couchapp push app.js http://localhost:5984/example_db
FAQs
Utilities for building CouchDB applications.
The npm package couchapp receives a total of 417 weekly downloads. As such, couchapp popularity was classified as not popular.
We found that couchapp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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
GitHub is susceptible to a CDN flaw that allows attackers to host malware on any public repository.
Security News
At Node Congress, Socket CEO Feross Aboukhadijeh uncovers the darker aspects of open source, where applications that rely heavily on third-party dependencies can be exploited in supply chain attacks.
Research
Security News
The Socket Research team found this npm package includes code for collecting sensitive developer information, including your operating system username, Git username, and Git email.