diff --git a/lib/aws.html b/lib/aws.html
new file mode 100644
index 00000000..da463c52
--- /dev/null
+++ b/lib/aws.html
@@ -0,0 +1,65 @@
+
+
+
+
+
diff --git a/lib/aws.js b/lib/aws.js
new file mode 100644
index 00000000..9997b676
--- /dev/null
+++ b/lib/aws.js
@@ -0,0 +1,65 @@
+/**
+ * Copyright 2013 Wolfgang Nagele
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ **/
+
+var RED = require(process.env.NODE_RED_HOME+"/red/red");
+var querystring = require('querystring');
+
+function AWSCredentialsNode(n) {
+ RED.nodes.createNode(this, n);
+ var credentials = RED.nodes.getCredentials(n.id);
+ if (credentials) {
+ this.accessKey = credentials.accessKey;
+ this.secretAccessKey = credentials.secretAccessKey;
+ }
+}
+RED.nodes.registerType("aws credentials", AWSCredentialsNode);
+
+RED.app.get('/aws-credentials/:id', function(req, res) {
+ var credentials = RED.nodes.getCredentials(req.params.id);
+ if (credentials) {
+ res.send(JSON.stringify({ accessKey: credentials.accessKey, secretAccessKey: credentials.secretAccessKey }));
+ } else {
+ res.send(JSON.stringify({}));
+ }
+});
+
+RED.app.delete('/aws-credentials/:id', function(req, res) {
+ RED.nodes.deleteCredentials(req.params.id);
+ res.send(200);
+});
+
+RED.app.post('/aws-credentials/:id', function(req, res) {
+ var body = "";
+ req.on("data", function(chunk) {
+ body += chunk;
+ });
+ req.on("end", function() {
+ var newCreds = querystring.parse(body);
+ var credentials = RED.nodes.getCredentials(req.params.id) || {};
+ if (newCreds.accessKey == null || newCreds.accessKey == "") {
+ delete credentials.accessKey;
+ } else {
+ credentials.accessKey = newCreds.accessKey || credentials.accessKey;
+ }
+ if (newCreds.secretAccessKey == null || newCreds.secretAccessKey == "") {
+ delete credentials.secretAccessKey;
+ } else {
+ credentials.secretAccessKey = newCreds.secretAccessKey || credentials.secretAccessKey;
+ }
+ RED.nodes.addCredentials(req.params.id, credentials);
+ res.send(200);
+ });
+});
diff --git a/storage/ddb/69-ddbout.html b/storage/ddb/69-ddbout.html
index dfe8dac0..4262ea5a 100644
--- a/storage/ddb/69-ddbout.html
+++ b/storage/ddb/69-ddbout.html
@@ -51,7 +51,7 @@
category: "storage-output",
color: "#ffaaaa",
defaults: {
- credentials: { type: "awscredentials", required: true },
+ credentials: { type: "aws credentials", required: true },
region: { value: "us-east-1" },
table: { value: "", required: true },
name: { value: "" }
@@ -65,53 +65,3 @@
}
});
-
-
-
-
diff --git a/storage/ddb/69-ddbout.js b/storage/ddb/69-ddbout.js
index 8cf0d753..3a9120d5 100644
--- a/storage/ddb/69-ddbout.js
+++ b/storage/ddb/69-ddbout.js
@@ -15,58 +15,11 @@
**/
var RED = require(process.env.NODE_RED_HOME+"/red/red");
+require("../../lib/aws");
var util = require("util");
-var querystring = require('querystring');
var aws = require("aws-sdk");
var attrWrapper = require("dynamodb-data-types").AttributeValue;
-function DDBNode(n) {
- RED.nodes.createNode(this, n);
- var credentials = RED.nodes.getCredentials(n.id);
- if (credentials) {
- this.accessKey = credentials.accessKey;
- this.secretAccessKey = credentials.secretAccessKey;
- }
-}
-RED.nodes.registerType("awscredentials", DDBNode);
-
-RED.app.get('/awscredentials/:id', function(req, res) {
- var credentials = RED.nodes.getCredentials(req.params.id);
- if (credentials) {
- res.send(JSON.stringify({ accessKey: credentials.accessKey, secretAccessKey: credentials.secretAccessKey }));
- } else {
- res.send(JSON.stringify({}));
- }
-});
-
-RED.app.delete('/awscredentials/:id', function(req, res) {
- RED.nodes.deleteCredentials(req.params.id);
- res.send(200);
-});
-
-RED.app.post('/awscredentials/:id', function(req, res) {
- var body = "";
- req.on("data", function(chunk) {
- body += chunk;
- });
- req.on("end", function() {
- var newCreds = querystring.parse(body);
- var credentials = RED.nodes.getCredentials(req.params.id) || {};
- if (newCreds.accessKey == null || newCreds.accessKey == "") {
- delete credentials.accessKey;
- } else {
- credentials.accessKey = newCreds.accessKey || credentials.accessKey;
- }
- if (newCreds.secretAccessKey == null || newCreds.secretAccessKey == "") {
- delete credentials.secretAccessKey;
- } else {
- credentials.secretAccessKey = newCreds.secretAccessKey || credentials.secretAccessKey;
- }
- RED.nodes.addCredentials(req.params.id, credentials);
- res.send(200);
- });
-});
-
function DDBOutNode(n) {
RED.nodes.createNode(this, n);
this.credentials = RED.nodes.getNode(n.credentials);