From fed888ddea82db9859721ad66b351be6e425c143 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Wed, 29 Nov 2017 15:03:08 -0700 Subject: [PATCH 01/35] Update deploy_proxy.sh --- learn-edge/scripts/deploy_proxy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learn-edge/scripts/deploy_proxy.sh b/learn-edge/scripts/deploy_proxy.sh index d1484310..0718b0a9 100644 --- a/learn-edge/scripts/deploy_proxy.sh +++ b/learn-edge/scripts/deploy_proxy.sh @@ -3,7 +3,7 @@ function deploy_proxy { if hash apigeetool 2>/dev/null; then printf "\n\nUsing apigeetool to deploy the proxy to the $env environment in the $org org to the $url url...\n\n" - apigeetool deployproxy -v -o $org -e $env --api learn-edge -L $url -d . -u $username -p $password -V + apigeetool deployproxy -o $org -e $env --api learn-edge -L $url -d . -u $username -p $password -V printf "\nIf the deployment is successful, then your API Proxy is ready to be invoked.\n" printf "\nRun 'invoke.sh'\n" else From efdb51da36bbc9b4e5d4be07442b400630522cf4 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Wed, 29 Nov 2017 15:28:17 -0700 Subject: [PATCH 02/35] Update README.md Fixes #45 --- sample-proxies/outbound-oauth/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sample-proxies/outbound-oauth/README.md b/sample-proxies/outbound-oauth/README.md index 79f474d5..f58a7a1b 100644 --- a/sample-proxies/outbound-oauth/README.md +++ b/sample-proxies/outbound-oauth/README.md @@ -67,9 +67,9 @@ A demo application that performs a search and renders the results in HTML is inc 1. Sign up for [Microsoft Translator API](http://www.microsofttranslator.com/dev/) access, and replace the `clientId` and `clientSecret` in `apiproxy/resources/jsc/api-config.js` with your application credentials. -2. Create a cache in the organization and environment you will be deploying the bundle in, using the definition in `twitter-translate-cache.xml`. This is used to cache the Translator API access token across requests. Try the following command: +2. Create a cache in the organization and environment you will be deploying the bundle in, using the definition in `oauth-token-cache.xml`. This is used to cache the Translator API access token across requests. Try the following command: - ```curl -v -X POST -H "Content-Type: application/xml" -d @twitter-translate-cache.xml https://api.enterprise.apigee.com/v1/organizations/$ORG/environments/$ENV/caches -u myname:mypass``` + ```curl -v -X POST -H "Content-Type: application/xml" -d @oauth-token-cache.xml https://api.enterprise.apigee.com/v1/organizations/$ORG/environments/$ENV/caches -u myname:mypass``` * The username and password that you use to login to enterprise.apigee.com. * The name of the organization in which you have an account. Log in to From 396639371c22fb60e3ffffbd18e16ef95024dcae Mon Sep 17 00:00:00 2001 From: Will Witman Date: Fri, 1 Dec 2017 11:47:01 -0700 Subject: [PATCH 03/35] Update package.json --- edge-ux/proxy-to-target/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/edge-ux/proxy-to-target/package.json b/edge-ux/proxy-to-target/package.json index 96664229..be6c68a0 100644 --- a/edge-ux/proxy-to-target/package.json +++ b/edge-ux/proxy-to-target/package.json @@ -11,8 +11,8 @@ }, "dependencies": { "apigeetool": "mukundha/apigeetool-node", - "gulp": "*", - "gulp-util": "^3.0.7" + "gulp": ">3.9.1", + "gulp-util": "^3.0.8" }, "author": "mukundha@apigee.com", "license": "ISC" From bd064abaec6412fd7ab4d12666a3f7d2ecf28821 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Fri, 1 Dec 2017 11:54:00 -0700 Subject: [PATCH 04/35] Update package.json --- .../templates/login-app/apiproxy/resources/node/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample-proxies/oauth-advanced/app/templates/login-app/apiproxy/resources/node/package.json b/sample-proxies/oauth-advanced/app/templates/login-app/apiproxy/resources/node/package.json index 8fb2c055..d6916696 100644 --- a/sample-proxies/oauth-advanced/app/templates/login-app/apiproxy/resources/node/package.json +++ b/sample-proxies/oauth-advanced/app/templates/login-app/apiproxy/resources/node/package.json @@ -13,7 +13,7 @@ "express-session": "^1.9.1", "less-middleware": "^0.1.12", "serve-favicon": "^2.1.6", - "validator": "^1.3.0" + "validator": ">2.0.0" }, "devDependencies": {}, "scripts": { From 2c143a248a4575fdbe4c4b90914f66cf251a6027 Mon Sep 17 00:00:00 2001 From: deboraelkin2 <34930623+deboraelkin2@users.noreply.github.com> Date: Fri, 12 Jan 2018 10:02:46 +1100 Subject: [PATCH 05/35] Surround pwd argument with quotes in commands This is to prevent issues when passwords have special characters such as $ (which would otherwise trigger an environment variable substitution) --- sample-proxies/oauth-advanced/app/index.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sample-proxies/oauth-advanced/app/index.js b/sample-proxies/oauth-advanced/app/index.js index bcdd8cde..91d65b82 100644 --- a/sample-proxies/oauth-advanced/app/index.js +++ b/sample-proxies/oauth-advanced/app/index.js @@ -98,15 +98,15 @@ module.exports = yeoman.generators.Base.extend({ // deploy user-mgmt-v1 shell.cd('user-mgmt-v1'); - shell.exec('apigeetool deployproxy -u '+this.uname+' -p '+this.password+' -o '+this.orgname+' -e '+this.envname+ ' -n user-mgmt-v1 -d .'); + shell.exec('apigeetool deployproxy -u '+this.uname+' -p \''+this.password+'\' -o '+this.orgname+' -e '+this.envname+ ' -n user-mgmt-v1 -d .'); // deploy oauth2 shell.cd('../oauth2'); - shell.exec('apigeetool deployproxy -u '+this.uname+' -p '+this.password+' -o '+this.orgname+' -e '+this.envname+ ' -n oauth2 -d .'); + shell.exec('apigeetool deployproxy -u '+this.uname+' -p \''+this.password+'\' -o '+this.orgname+' -e '+this.envname+ ' -n oauth2 -d .'); // provision login-app shell.cd('../provisioning'); - shell.exec('./provision-login-app.sh '+this.uname+' '+this.password+' '+this.orgname+' '+this.envname+' '+this.mgmtapiurl); + shell.exec('./provision-login-app.sh '+this.uname+' \''+this.password+'\' '+this.orgname+' '+this.envname+' '+this.mgmtapiurl); // npm install for login-app shell.cd('../login-app/apiproxy/resources/node'); @@ -114,15 +114,15 @@ module.exports = yeoman.generators.Base.extend({ // deploy login-app shell.cd('../../..'); - shell.exec('apigeetool deployproxy -u '+this.uname+' -p '+this.password+' -o '+this.orgname+' -e '+this.envname+ ' -n login-app -d . -U'); + shell.exec('apigeetool deployproxy -u '+this.uname+' -p \''+this.password+'\' -o '+this.orgname+' -e '+this.envname+ ' -n login-app -d . -U'); // provision webserver shell.cd('../provisioning'); - shell.exec('./provision-webserver.sh '+this.uname+' '+this.password+' '+this.orgname+' '+this.envname+' '+this.mgmtapiurl); + shell.exec('./provision-webserver.sh '+this.uname+' \''+this.password+'\' '+this.orgname+' '+this.envname+' '+this.mgmtapiurl); //capture clientID and secret from last step and put in webserver-app bundle - var webserverappkey = shell.exec("curl -H 'Accept: application/json' -u "+this.uname+":"+this.password+" "+this.mgmtapiurl+"/v1/o/"+this.orgname+"/developers/webdev@example.com/apps/webserver-app 2>/dev/null | grep consumerKey | awk -F '\"' '{ print $4 }'").output; - var webserverappsecret = shell.exec("curl -H 'Accept: application/json' -u "+this.uname+":"+this.password+" "+this.mgmtapiurl+"/v1/o/"+this.orgname+"/developers/webdev@example.com/apps/webserver-app 2>/dev/null | grep consumerSecret | awk -F '\"' '{ print $4 }'").output; + var webserverappkey = shell.exec("curl -H 'Accept: application/json' -u '"+this.uname+":"+this.password+"' "+this.mgmtapiurl+"/v1/o/"+this.orgname+"/developers/webdev@example.com/apps/webserver-app 2>/dev/null | grep consumerKey | awk -F '\"' '{ print $4 }'").output; + var webserverappsecret = shell.exec("curl -H 'Accept: application/json' -u '"+this.uname+":"+this.password+"' "+this.mgmtapiurl+"/v1/o/"+this.orgname+"/developers/webdev@example.com/apps/webserver-app 2>/dev/null | grep consumerSecret | awk -F '\"' '{ print $4 }'").output; // remove trailing whitespace webserverappkey = webserverappkey.replace(/\n$/, ""); webserverappsecret = webserverappsecret.replace(/\n$/, ""); @@ -142,8 +142,8 @@ module.exports = yeoman.generators.Base.extend({ shell.cd('webserver-app'); //deploy webserver-app bundle - shell.exec('apigeetool deployproxy -u '+this.uname+' -p '+this.password+' -o '+this.orgname+' -e '+this.envname+ ' -n webserver-app -d .'); + shell.exec('apigeetool deployproxy -u '+this.uname+' -p \''+this.password+'\' -o '+this.orgname+' -e '+this.envname+ ' -n webserver-app -d .'); }, -}); \ No newline at end of file +}); From 042bf635d4d6041c3eb7ac31e7a2baf1ff40cfc4 Mon Sep 17 00:00:00 2001 From: deboraelkin2 <34930623+deboraelkin2@users.noreply.github.com> Date: Fri, 12 Jan 2018 10:38:45 +1100 Subject: [PATCH 06/35] Updated repository link Now points to this public repo --- sample-proxies/oauth-advanced/package.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sample-proxies/oauth-advanced/package.json b/sample-proxies/oauth-advanced/package.json index 0aedba90..9cb9c469 100644 --- a/sample-proxies/oauth-advanced/package.json +++ b/sample-proxies/oauth-advanced/package.json @@ -23,10 +23,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "repository": { - "type": "git", - "url": "git+https://github.com/dzuluaga/oauth-auth-code-grant-sample.git" - }, + "repository": "repository": "github:apigee/api-platform-samples/sample-proxies/oauth-advanced", "author": "", "license": "ISC", "bugs": { From 4a3afe5c1504acb6a0f8b573c24f1af624289d6e Mon Sep 17 00:00:00 2001 From: deboraelkin2 <34930623+deboraelkin2@users.noreply.github.com> Date: Fri, 12 Jan 2018 11:15:30 +1100 Subject: [PATCH 07/35] Updated version number and links to repository, issues and homepage --- .gitignore | 1 + sample-proxies/oauth-advanced/package.json | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index fdd2f26d..0e7d76f3 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ .idea/ *.iml *.iws +*.tgz diff --git a/sample-proxies/oauth-advanced/package.json b/sample-proxies/oauth-advanced/package.json index 9cb9c469..e6f0279f 100644 --- a/sample-proxies/oauth-advanced/package.json +++ b/sample-proxies/oauth-advanced/package.json @@ -1,6 +1,6 @@ { "name": "generator-oauth-auth-code-grant-sample", - "version": "0.1.6", + "version": "0.1.8", "description": "Generator for OAuth authorization code grant type using Apigee", "files": [ "app", @@ -23,11 +23,11 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "repository": "repository": "github:apigee/api-platform-samples/sample-proxies/oauth-advanced", + "repository": "github:apigee/api-platform-samples/sample-proxies/oauth-advanced", "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/dzuluaga/oauth-auth-code-grant-sample/issues" + "url": "https://github.com/apigee/api-platform-samples/issues" }, - "homepage": "https://github.com/dzuluaga/oauth-auth-code-grant-sample#readme" + "homepage": "https://github.com/apigee/api-platform-samples/tree/master/sample-proxies/oauth-advanced#readme" } From 00641025a599463b109f312eca5fbac6a4999655 Mon Sep 17 00:00:00 2001 From: deboraelkin2 Date: Mon, 15 Jan 2018 09:58:04 +1100 Subject: [PATCH 08/35] Added direct link to generator source code --- sample-proxies/oauth-advanced/README.md | 2 +- sample-proxies/oauth-advanced/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sample-proxies/oauth-advanced/README.md b/sample-proxies/oauth-advanced/README.md index c2ad9a92..ac02948e 100644 --- a/sample-proxies/oauth-advanced/README.md +++ b/sample-proxies/oauth-advanced/README.md @@ -30,7 +30,7 @@ To run this sample, you'll need: * Yeoman [installed](http://yeoman.io/) -* Install oauth-auth-code-grant-sample generator: +* Install oauth-auth-code-grant-sample generator (You can find the source code [here](https://github.com/apigee/api-platform-samples/blob/master/sample-proxies/oauth-advanced/app/index.js)): `npm install generator-oauth-auth-code-grant-sample -g` * Please note that the sample does not run properly in Windows 10. Please run in macOS or Linux for full compatibility. diff --git a/sample-proxies/oauth-advanced/package.json b/sample-proxies/oauth-advanced/package.json index e6f0279f..5cb92f17 100644 --- a/sample-proxies/oauth-advanced/package.json +++ b/sample-proxies/oauth-advanced/package.json @@ -1,6 +1,6 @@ { "name": "generator-oauth-auth-code-grant-sample", - "version": "0.1.8", + "version": "0.1.10", "description": "Generator for OAuth authorization code grant type using Apigee", "files": [ "app", From 81c391c62cef9b00b6c15e742e565358b8f0b399 Mon Sep 17 00:00:00 2001 From: Debora Elkin Date: Mon, 15 Jan 2018 22:18:03 -0800 Subject: [PATCH 09/35] Added direct link to generator source code --- sample-proxies/oauth-advanced/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample-proxies/oauth-advanced/package.json b/sample-proxies/oauth-advanced/package.json index e6f0279f..5cb92f17 100644 --- a/sample-proxies/oauth-advanced/package.json +++ b/sample-proxies/oauth-advanced/package.json @@ -1,6 +1,6 @@ { "name": "generator-oauth-auth-code-grant-sample", - "version": "0.1.8", + "version": "0.1.10", "description": "Generator for OAuth authorization code grant type using Apigee", "files": [ "app", From 62d5ab71613a0b4cdae0445b90754de7d20ecb46 Mon Sep 17 00:00:00 2001 From: Debora Elkin Date: Mon, 15 Jan 2018 22:19:35 -0800 Subject: [PATCH 10/35] Added direct link to generator source code --- sample-proxies/oauth-advanced/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample-proxies/oauth-advanced/README.md b/sample-proxies/oauth-advanced/README.md index c2ad9a92..8b2a1e5d 100644 --- a/sample-proxies/oauth-advanced/README.md +++ b/sample-proxies/oauth-advanced/README.md @@ -30,7 +30,7 @@ To run this sample, you'll need: * Yeoman [installed](http://yeoman.io/) -* Install oauth-auth-code-grant-sample generator: +* Install oauth-auth-code-grant-sample generator (You can find the source code [here](https://github.com/apigee/api-platform-samples/blob/master/sample-proxies/oauth-advanced/app/index.js)): `npm install generator-oauth-auth-code-grant-sample -g` * Please note that the sample does not run properly in Windows 10. Please run in macOS or Linux for full compatibility. From fd88fc68d7d5189184ebcf840cf7fac5036b048c Mon Sep 17 00:00:00 2001 From: floydjonz Date: Wed, 21 Feb 2018 07:01:28 -0800 Subject: [PATCH 11/35] add troubleshooting tip --- learn-edge/README.md | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/learn-edge/README.md b/learn-edge/README.md index 091c856d..0f22e80e 100644 --- a/learn-edge/README.md +++ b/learn-edge/README.md @@ -14,17 +14,17 @@ The best way to learn Apigee Edge is by doing! This is the recommended path through the examples. But you can do them in any order you wish. Each sample can be deployed and run independently: -1. [simplest-proxy](./simplest-proxy/README.md) +1. [simplest-proxy](./simplest-proxy/README.md) - >Learn to deploy and call a very simple proxy. + >Learn to deploy and call a very simple proxy. 2. [proxy-to-a-target](./proxy-to-a-target/README.md) - >Get back data from a backend target service. + >Get back data from a backend target service. 3. [apikey-security-1](./apikey-security-1/README.md) - >Secure an API with an API key. + >Secure an API with an API key. 4. [apikey-security-2](./apikey-security-2/README.md) @@ -32,15 +32,15 @@ This is the recommended path through the examples. But you can do them in any or 4. [fault-handling-1](./fault-handling-1/README.md) - >Handle a proxy error and return a custom error message. + >Handle a proxy error and return a custom error message. 5. [fault-handling-2](./fault-handling-2/README.md) - >Learn more about how to do fault handling. + >Learn more about how to do fault handling. 5. [response-cache-1](./response-cache-1/README.md) - >Speed up your proxy performance with a response cache. + >Speed up your proxy performance with a response cache. 6. [response-cache-2](./response-cache-2/README.md) @@ -49,14 +49,14 @@ This is the recommended path through the examples. But you can do them in any or 6. [extract-json-payload](./extract-json-payload/README.md) >Extract data from a JSON payload and return the data in custom response headers. - + 7. [extract-json-payload-2](./extract-json-payload-2/README.md) >Query for data to extract from a JSON response payload. 7. [extract-xml-payload](./extract-xml-payload/README.md) - >Extract data from an XML request body and set a custom XML response body. + >Extract data from an XML request body and set a custom XML response body. 7. [quota-1](./quota-1/README.md) @@ -74,7 +74,7 @@ This is the recommended path through the examples. But you can do them in any or ### Prerequisites 1. You need an **Apigee account**. If you don't have an Apigee account, go to [https://login.apigee.com/login](https://login.apigee.com/login), and click Create Account. -2. You must install [apigeetool](https://www.npmjs.com/package/apigeetool). We use apigeetool to deploy the proxies. +2. You must install [apigeetool](https://www.npmjs.com/package/apigeetool). We use apigeetool to deploy the proxies. `npm install -g apigeetool` @@ -83,6 +83,11 @@ This is the recommended path through the examples. But you can do them in any or 2. Download or clone the [api-platform-samples](https://github.com/apigee/api-platform-samples) GitHub repo. 6. In a browser, sign in to your [Apigee account](http://apigee.com) and go to the API Management section. It'll be good to keep this browser window open as you work so you can view and trace the Learn Edge proxies in the UI. +**Troubleshooting:** If you've previously tried to run the sample and you run into +trouble with the script (for example, it's using the wrong organization +or the URL to invoke is incorrect), find and delete the `HOME/learn-edge.rc` +file on your local system. Then re-deploy the sample. + That's it! To get started, go to the README for the first example proxy, [simplest-proxy](./simplest-proxy), and follow the instructions. On your filesystem, it is in the folder `api-platform-samples/learn-edge/simplest-proxy`. ### What you'll learn @@ -90,17 +95,17 @@ That's it! To get started, go to the README for the first example proxy, [simple We try not to clutter the lessons with a lot of explanation and background information. Rather, we expect you to learn by doing, by changing things, and fixing problems. When you complete the series, you will understand: * The basic capabilities of Apigee Edge. -* Core concepts you'll need to be a successful Edge developer. They include security, fault handling, caching, quotas, and others. +* Core concepts you'll need to be a successful Edge developer. They include security, fault handling, caching, quotas, and others. * How Edge projects are structured. * How to do primary Edge development locally, on your laptop, rather than in the UI. * How to deploy Edge proxies from your laptop to Edge. * Basic debugging techniques. -**Tip:** If you want to dive deeper into any concept covered in this series, you can go to the [Apigee Edge documentation](http://docs.apigee.com/) and use Search to look up topics (search works very well and even picks up related topics in the [Apigee Community](https://community.apigee.com/index.html)). In a few cases, we'll provide a link if we think it will be especially helpful. You can also check out the Apigee Edge [4-Minute Video](https://www.youtube.com/playlist?list=PLIXjuPlujxxxe3iTmLtgfIBgpMo7iD7fk) series. +**Tip:** If you want to dive deeper into any concept covered in this series, you can go to the [Apigee Edge documentation](http://docs.apigee.com/) and use Search to look up topics (search works very well and even picks up related topics in the [Apigee Community](https://community.apigee.com/index.html)). In a few cases, we'll provide a link if we think it will be especially helpful. You can also check out the Apigee Edge [4-Minute Video](https://www.youtube.com/playlist?list=PLIXjuPlujxxxe3iTmLtgfIBgpMo7iD7fk) series. ### What you won't learn -* A lot of background, text-book style information. You'll learn by deploying and running example code on Apigee Edge. You can always read about features in the official [Apigee Edge documentation](http://docs.apigee.com/). +* A lot of background, text-book style information. You'll learn by deploying and running example code on Apigee Edge. You can always read about features in the official [Apigee Edge documentation](http://docs.apigee.com/). * All of the possible use cases for Edge. * All of the features included with Edge. * All of the possible ways to use the features we introduce. From b4bc7c77813c1b760a91c4767c4ab68377b35eca Mon Sep 17 00:00:00 2001 From: floydjonz Date: Wed, 21 Feb 2018 07:10:59 -0800 Subject: [PATCH 12/35] troubleshooting edits --- learn-edge/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/learn-edge/README.md b/learn-edge/README.md index 0f22e80e..4af284a7 100644 --- a/learn-edge/README.md +++ b/learn-edge/README.md @@ -83,10 +83,10 @@ This is the recommended path through the examples. But you can do them in any or 2. Download or clone the [api-platform-samples](https://github.com/apigee/api-platform-samples) GitHub repo. 6. In a browser, sign in to your [Apigee account](http://apigee.com) and go to the API Management section. It'll be good to keep this browser window open as you work so you can view and trace the Learn Edge proxies in the UI. -**Troubleshooting:** If you've previously tried to run the sample and you run into +**Troubleshooting:** If you've previously tried to run the sample and have trouble with the script (for example, it's using the wrong organization -or the URL to invoke is incorrect), find and delete the `HOME/learn-edge.rc` -file on your local system. Then re-deploy the sample. +or the URL to invoke is incorrect), find and delete `HOME/learn-edge.rc` +on your local file system. Then re-deploy the sample. That's it! To get started, go to the README for the first example proxy, [simplest-proxy](./simplest-proxy), and follow the instructions. On your filesystem, it is in the folder `api-platform-samples/learn-edge/simplest-proxy`. From c1d7f2362939555607bea7d04aac0dfec18ea8e9 Mon Sep 17 00:00:00 2001 From: Dino Chiesa Date: Fri, 9 Mar 2018 08:59:15 -0800 Subject: [PATCH 13/35] update simplesoap example to use https endpoint for target and proxy --- sample-proxies/soap/apiproxy/proxies/default.xml | 3 +-- sample-proxies/soap/apiproxy/targets/default.xml | 3 +-- sample-proxies/soap/invoke.sh | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/sample-proxies/soap/apiproxy/proxies/default.xml b/sample-proxies/soap/apiproxy/proxies/default.xml index af676958..87707823 100644 --- a/sample-proxies/soap/apiproxy/proxies/default.xml +++ b/sample-proxies/soap/apiproxy/proxies/default.xml @@ -18,10 +18,9 @@ /simplesoap - default + secure default - diff --git a/sample-proxies/soap/apiproxy/targets/default.xml b/sample-proxies/soap/apiproxy/targets/default.xml index 374a27d5..662575a4 100644 --- a/sample-proxies/soap/apiproxy/targets/default.xml +++ b/sample-proxies/soap/apiproxy/targets/default.xml @@ -1,6 +1,5 @@ - http://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php + https://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php - diff --git a/sample-proxies/soap/invoke.sh b/sample-proxies/soap/invoke.sh index eec4b579..9e08db3c 100644 --- a/sample-proxies/soap/invoke.sh +++ b/sample-proxies/soap/invoke.sh @@ -6,4 +6,4 @@ source ../../setup/setenv.sh set -x -curl http://$org-$env.$api_domain/simplesoap?wsdl \ No newline at end of file +curl https://$org-$env.$api_domain/simplesoap?wsdl From c93e564e8ce40f702fc2b5b66b571b70abfed134 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Wed, 11 Apr 2018 11:51:23 -0600 Subject: [PATCH 14/35] Update README.md Fixed hyperlinks --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 77d524ba..2b1dcd99 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,11 @@ ## Audience -You are an Apigee Edge API proxy developer, or you would like to learn about developing APIs that run on Apigee Edge. At a minimum, we assume you're familiar with Apigee Edge and how to create simple API proxies. To learn more, we recommend this [getting-started tutorial](http://apigee.com/docs/api-services/tutorials/create-your-first-api). +You are an Apigee Edge API proxy developer, or you would like to learn about developing APIs that run on Apigee Edge. At a minimum, we assume you're familiar with Apigee Edge and how to create simple API proxies. To learn more, we recommend this [getting-started tutorial](https://docs.apigee.com/api-platform/tutorials/add-and-configure-your-first-api). ## Intro -This repository contains a collection of sample API proxies that you can deploy and run on [Apigee Edge](http://apigee.com/about/products/api-management). +This repository contains a collection of sample API proxies that you can deploy and run on [Apigee Edge](https://apigee.com/api-management/#/products). ![alt text](./images/sample-proxies-1.png) @@ -42,7 +42,7 @@ In addition, you'll find: ## Using the sample proxies -Most developers begin by identifying an interesting sample based on a specific use case or need. You'll find the samples in the `./api-platform-samples/sample-proxies` folder. The Apigee doc site also has a handy [samples overview page](http://apigee.com/docs/api-services/samples/samples-reference). +Most developers begin by identifying an interesting sample based on a specific use case or need. You'll find the samples in the `./api-platform-samples/sample-proxies` folder. The Apigee doc site also has a handy [samples overview page](https://docs.apigee.com/api-platform/samples/samples-reference). For example, if you're interested in doing XML to JSON transformations, check out `api-platform-samples/sample-proxies/xmltojson`. @@ -158,7 +158,7 @@ API products, apps, and developers. Simple scripts to help you deploy the sample API proxies and profiles that they rely on, including API products, developers, and apps. -Set you Apigee API Platform account settings in `setenv.sh` ([Register for a free Apigee account](http://eneterprise.apigee.com/signup)) +Set you Apigee API Platform account settings in `setenv.sh` ([Register for a free Apigee account](https://docs.apigee.com/api-platform/get-started/creating-apigee-edge-account)) To deploy a single sample, run `deploy.sh proxyName`, where `proxyName` is the name of the directory under `/sample-proxies` that contains the proxy you want to deploy. @@ -178,7 +178,7 @@ To deploy all samples and API products, run `deploy_all.sh` ## Apigee Edge documentation -The Apigee Edge docs are [here](http://apigee.com/docs). +The Apigee Edge docs are [here](https://docs.apigee.com). --- From e35a235fd74463455bc2d7e61b9bc2b3b2eaf961 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Mon, 30 Apr 2018 09:09:33 -0600 Subject: [PATCH 15/35] new hosted targets exmaples --- doc-samples/hosted-targets/README.md | 3 + .../node-hosted-express/README.md | 101 ++++++++++++++++++ .../apiproxy/node-hosted-express.xml | 25 +++++ .../apiproxy/proxies/default.xml | 23 ++++ .../apiproxy/resources/hosted/app.yaml | 8 ++ .../apiproxy/resources/hosted/index.js | 15 +++ .../apiproxy/resources/hosted/package.json | 13 +++ .../apiproxy/targets/default.xml | 15 +++ .../node-hosted-express/deploy.txt | 7 ++ .../node-hosted-hello/README.md | 79 ++++++++++++++ .../apiproxy/node-hosted-hello.xml | 25 +++++ .../apiproxy/proxies/default.xml | 23 ++++ .../apiproxy/resources/hosted/app.yaml | 8 ++ .../apiproxy/resources/hosted/index.js | 14 +++ .../apiproxy/resources/hosted/package.json | 13 +++ .../apiproxy/targets/default.xml | 15 +++ 16 files changed, 387 insertions(+) create mode 100644 doc-samples/hosted-targets/README.md create mode 100644 doc-samples/hosted-targets/node-hosted-express/README.md create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/node-hosted-express.xml create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/proxies/default.xml create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/app.yaml create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/index.js create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/package.json create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/targets/default.xml create mode 100644 doc-samples/hosted-targets/node-hosted-express/deploy.txt create mode 100644 doc-samples/hosted-targets/node-hosted-hello/README.md create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/node-hosted-hello.xml create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/proxies/default.xml create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/app.yaml create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/index.js create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/package.json create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/targets/default.xml diff --git a/doc-samples/hosted-targets/README.md b/doc-samples/hosted-targets/README.md new file mode 100644 index 00000000..16bf6a1b --- /dev/null +++ b/doc-samples/hosted-targets/README.md @@ -0,0 +1,3 @@ +This directory contains samples that you can deploy on Apigee Edge Hosted Targets. See the README files for detailed instructions. + +To learn about Hosted Targets, see [Hosted Targets overview](https://docs.apigee.com/api-platform/hosted-targets/hosted-targets-overview.html) in the Apigee Edge documentation. diff --git a/doc-samples/hosted-targets/node-hosted-express/README.md b/doc-samples/hosted-targets/node-hosted-express/README.md new file mode 100644 index 00000000..ba64e22b --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/README.md @@ -0,0 +1,101 @@ +# How to create a hello world Node.js application with Hosted Targets using express + +This sample is a Node.js proxy that uses [express](https://www.npmjs.com/package/express). + +## Test the app locally + Before pushing to Apigee, it can be useful to test the application locally first to make sure everything is working as it should. + + 1. Make sure you have [Nodejs](https://nodejs.org/en/download/) installed + 2. Installl dependencies: + + ``` + cd apiproxy/resources/hosted + npm install + ``` + + 3. Start the application: + + ``` + PORT=8081 node index.js + ``` + + 4. Test the applicaiton: + + ``` + curl http://localhost:8081 + {"hello":"Hello World!"} + + curl http://localhost:8081/hello/user + {"hello":"hello user"} + ``` + + 5. Remove node_modules and package-lock.json: + + ``` + rm -rf node_modules + rm package-lock.json + ``` + + 6. Go back to the home directory for deploying: + + ``` + cd ../../.. + ``` + +## Deploy the proxy + 1. Make sure you have [apigeetool](https://github.com/apigee/apigeetool-node) installed + 2. Make sure you have [get_token](https://apidocs.apigee.com/api-reference/content/using-oauth2-security-apigee-edge-management-api) script installed + 3. Deploy your proxy: + + ``` + get_token && apigeetool deployproxy \ + -o \ + -e \ + --json \ + --token "$(< ~/.sso-cli/valid_token.dat)" \ + --api node-hosted-express \ + --directory . + ``` + **Note**: This step might take a minute or two to work + + 4. Test your proxy deployment: + + ``` + curl https:/-.apigee.net/node-hosted-express + ``` + + 5. Undeploy your proxy: + + ``` + get_token && apigeetool undeploy \ + -o \ + -e \ + --json \ + --token "$(< ~/.sso-cli/valid_token.dat)" \ + --api node-hosted-express \ + --revision + ``` + + For more insight into Hosted Targets and Apigee, visit our [documentation](https://docs.apigee.com/api-platform/hosted-targets/hosted-targets-overview.html). + +# Ask the community + +[![alt text](../../images/apigee-community.png "Apigee Community is a great place to ask questions and find answers about developing API proxies. ")](https://community.apigee.com?via=github) + +--- + +Copyright © 2017 Apigee Corporation + +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. + +http://docs.apigee.com/api-services/reference/supported-software diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/node-hosted-express.xml b/doc-samples/hosted-targets/node-hosted-express/apiproxy/node-hosted-express.xml new file mode 100644 index 00000000..f9e67ff5 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/node-hosted-express.xml @@ -0,0 +1,25 @@ + + + /node-hosted-express + + 1512506918706 + kwiese@google.com + + node-hosted-express + 1512506918706 + kwiese@google.com + + + default + + + hosted://app.yaml + hosted://index.js + hosted://package.json + + + + + default + + diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/proxies/default.xml b/doc-samples/hosted-targets/node-hosted-express/apiproxy/proxies/default.xml new file mode 100644 index 00000000..23001cf0 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/proxies/default.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + /node-hosted-express + + default + secure + + + default + + diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/app.yaml b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/app.yaml new file mode 100644 index 00000000..a4175639 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/app.yaml @@ -0,0 +1,8 @@ +runtime: node +runtimeVersion: 8 +application: my-express-app +env: + - name: NODE_ENV + value: production + - name: LOG_LEVEL + value: 3 diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/index.js b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/index.js new file mode 100644 index 00000000..9682d9fe --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/index.js @@ -0,0 +1,15 @@ +var express = require('express') +var app = express() + +app.get('/', function (req, res) { + res.json({ hello: "Hello World!" }) +}) + +app.get('/hello/:name', function (req, res) { + var name = req.params.name + res.json({ hello: "hello " + name }) +}) + +var server = app.listen(process.env.PORT || 9000, function () { + console.log('Listening on port %d', server.address().port) +}) \ No newline at end of file diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/package.json b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/package.json new file mode 100644 index 00000000..ce5c4334 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/package.json @@ -0,0 +1,13 @@ +{ + "name": "hello-world", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "start": "node index.js --use_strict" + }, + "author": "", + "license": "", + "dependencies": { + "express": "^4.16.0" + } +} diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/targets/default.xml b/doc-samples/hosted-targets/node-hosted-express/apiproxy/targets/default.xml new file mode 100644 index 00000000..82a7ea17 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/targets/default.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc-samples/hosted-targets/node-hosted-express/deploy.txt b/doc-samples/hosted-targets/node-hosted-express/deploy.txt new file mode 100644 index 00000000..f4307553 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/deploy.txt @@ -0,0 +1,7 @@ +get_token && apigeetool deployproxy \ + -o apigee-hf-testing \ + -e test \ + --json \ + --token "$(< ~/.sso-cli/valid_token.dat)" \ + --api node-hosted-express \ + --directory . diff --git a/doc-samples/hosted-targets/node-hosted-hello/README.md b/doc-samples/hosted-targets/node-hosted-hello/README.md new file mode 100644 index 00000000..fca9e3d6 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/README.md @@ -0,0 +1,79 @@ +# How to create a hello world Node.js application with Hosted Targets + +This sample is a simple hello world Node.js proxy. + +## Test the app locally + Before pushing to Apigee, it can be useful to test the application locally first to make sure everything is working as it should. + + 1. Make sure you have [Nodejs](https://nodejs.org/en/download/) installed + + 2. Start the application: + + ``` + PORT=8081 node apiproxy/resources/hosted/index.js + ``` + + 3. Test the applicaiton: + + ``` + curl http://localhost:8081 + {"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"} + ``` + +## Deploy the proxy + 1. Make sure you have [apigeetool](https://github.com/apigee/apigeetool-node) installed + 2. Make sure you have [get_token](https://apidocs.apigee.com/api-reference/content/using-oauth2-security-apigee-edge-management-api) script installed + 3. Deploy your proxy: + + ``` + get_token && apigeetool deployproxy \ + -o \ + -e \ + --json \ + --token "$(< ~/.sso-cli/valid_token.dat)" \ + --api node-hosted-hello \ + --directory . + ``` + **Note**: This step might take a minute or two to work + + 4. Test your proxy deployment: + + ``` + curl https:/-.apigee.net/node-hosted-hello + ``` + + 5. Undeploy your proxy: + + ``` + get_token && apigeetool undeploy \ + -o \ + -e \ + --json \ + --token "$(< ~/.sso-cli/valid_token.dat)" \ + --api node-hosted-hello \ + --revision + ``` + + For more insight into Hosted Targets and Apigee, visit our [documentation](https://docs.apigee.com/api-platform/hosted-targets/hosted-targets-overview.html). + +# Ask the community + +[![alt text](../../images/apigee-community.png "Apigee Community is a great place to ask questions and find answers about developing API proxies. ")](https://community.apigee.com?via=github) + +--- + +Copyright © 2017 Apigee Corporation + +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. + +http://docs.apigee.com/api-services/reference/supported-software diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/node-hosted-hello.xml b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/node-hosted-hello.xml new file mode 100644 index 00000000..f7aff875 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/node-hosted-hello.xml @@ -0,0 +1,25 @@ + + + /node-hosted-hello + + 1512506918706 + kwiese@google.com + + node-hosted-hello + 1512506918706 + kwiese@google.com + + + default + + + hosted://app.yaml + hosted://index.js + hosted://package.json + + + + + default + + diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/proxies/default.xml b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/proxies/default.xml new file mode 100644 index 00000000..611eb8d7 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/proxies/default.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + /node-hosted-hello + + default + secure + + + default + + diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/app.yaml b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/app.yaml new file mode 100644 index 00000000..a4918f68 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/app.yaml @@ -0,0 +1,8 @@ +runtime: node +runtimeVersion: 8 +application: my-node-app +env: + - name: NODE_ENV + value: production + - name: LOG_LEVEL + value: 3 diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/index.js b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/index.js new file mode 100644 index 00000000..7140332e --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/index.js @@ -0,0 +1,14 @@ +var http = require('http'); + +console.log('node.js application starting...'); +console.log(process.env); + +var svr = http.createServer(function(req, resp) { + console.log(req.method, req.url); + resp.setHeader("Content-Type", "application/json"); + resp.end(JSON.stringify({ date: new Date(), msg: 'Hello, World!'})); +}); + +svr.listen(process.env.PORT || 9000, function() { + console.log('Node HTTP server is listening'); +}); \ No newline at end of file diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/package.json b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/package.json new file mode 100644 index 00000000..d5315089 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/package.json @@ -0,0 +1,13 @@ +{ + "name": "hello-world", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "start": "node index.js" + }, + "author": "", + "license": "", + "description": "Hello World Application", + "dependencies": { + } +} \ No newline at end of file diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/targets/default.xml b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/targets/default.xml new file mode 100644 index 00000000..82a7ea17 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/targets/default.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file From a31214bacdcae988fd347530f3629971688bf596 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Mon, 30 Apr 2018 09:16:26 -0600 Subject: [PATCH 16/35] New hosted targets examples.] --- doc-samples/hosted-targets/README.md | 3 + .../node-hosted-express/README.md | 101 ++++++++++++++++++ .../apiproxy/node-hosted-express.xml | 25 +++++ .../apiproxy/proxies/default.xml | 23 ++++ .../apiproxy/resources/hosted/app.yaml | 8 ++ .../apiproxy/resources/hosted/index.js | 15 +++ .../apiproxy/resources/hosted/package.json | 13 +++ .../apiproxy/targets/default.xml | 15 +++ .../node-hosted-express/deploy.txt | 7 ++ .../node-hosted-hello/README.md | 79 ++++++++++++++ .../apiproxy/node-hosted-hello.xml | 25 +++++ .../apiproxy/proxies/default.xml | 23 ++++ .../apiproxy/resources/hosted/app.yaml | 8 ++ .../apiproxy/resources/hosted/index.js | 14 +++ .../apiproxy/resources/hosted/package.json | 13 +++ .../apiproxy/targets/default.xml | 15 +++ 16 files changed, 387 insertions(+) create mode 100644 doc-samples/hosted-targets/README.md create mode 100644 doc-samples/hosted-targets/node-hosted-express/README.md create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/node-hosted-express.xml create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/proxies/default.xml create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/app.yaml create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/index.js create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/package.json create mode 100644 doc-samples/hosted-targets/node-hosted-express/apiproxy/targets/default.xml create mode 100644 doc-samples/hosted-targets/node-hosted-express/deploy.txt create mode 100644 doc-samples/hosted-targets/node-hosted-hello/README.md create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/node-hosted-hello.xml create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/proxies/default.xml create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/app.yaml create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/index.js create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/package.json create mode 100644 doc-samples/hosted-targets/node-hosted-hello/apiproxy/targets/default.xml diff --git a/doc-samples/hosted-targets/README.md b/doc-samples/hosted-targets/README.md new file mode 100644 index 00000000..16bf6a1b --- /dev/null +++ b/doc-samples/hosted-targets/README.md @@ -0,0 +1,3 @@ +This directory contains samples that you can deploy on Apigee Edge Hosted Targets. See the README files for detailed instructions. + +To learn about Hosted Targets, see [Hosted Targets overview](https://docs.apigee.com/api-platform/hosted-targets/hosted-targets-overview.html) in the Apigee Edge documentation. diff --git a/doc-samples/hosted-targets/node-hosted-express/README.md b/doc-samples/hosted-targets/node-hosted-express/README.md new file mode 100644 index 00000000..ba64e22b --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/README.md @@ -0,0 +1,101 @@ +# How to create a hello world Node.js application with Hosted Targets using express + +This sample is a Node.js proxy that uses [express](https://www.npmjs.com/package/express). + +## Test the app locally + Before pushing to Apigee, it can be useful to test the application locally first to make sure everything is working as it should. + + 1. Make sure you have [Nodejs](https://nodejs.org/en/download/) installed + 2. Installl dependencies: + + ``` + cd apiproxy/resources/hosted + npm install + ``` + + 3. Start the application: + + ``` + PORT=8081 node index.js + ``` + + 4. Test the applicaiton: + + ``` + curl http://localhost:8081 + {"hello":"Hello World!"} + + curl http://localhost:8081/hello/user + {"hello":"hello user"} + ``` + + 5. Remove node_modules and package-lock.json: + + ``` + rm -rf node_modules + rm package-lock.json + ``` + + 6. Go back to the home directory for deploying: + + ``` + cd ../../.. + ``` + +## Deploy the proxy + 1. Make sure you have [apigeetool](https://github.com/apigee/apigeetool-node) installed + 2. Make sure you have [get_token](https://apidocs.apigee.com/api-reference/content/using-oauth2-security-apigee-edge-management-api) script installed + 3. Deploy your proxy: + + ``` + get_token && apigeetool deployproxy \ + -o \ + -e \ + --json \ + --token "$(< ~/.sso-cli/valid_token.dat)" \ + --api node-hosted-express \ + --directory . + ``` + **Note**: This step might take a minute or two to work + + 4. Test your proxy deployment: + + ``` + curl https:/-.apigee.net/node-hosted-express + ``` + + 5. Undeploy your proxy: + + ``` + get_token && apigeetool undeploy \ + -o \ + -e \ + --json \ + --token "$(< ~/.sso-cli/valid_token.dat)" \ + --api node-hosted-express \ + --revision + ``` + + For more insight into Hosted Targets and Apigee, visit our [documentation](https://docs.apigee.com/api-platform/hosted-targets/hosted-targets-overview.html). + +# Ask the community + +[![alt text](../../images/apigee-community.png "Apigee Community is a great place to ask questions and find answers about developing API proxies. ")](https://community.apigee.com?via=github) + +--- + +Copyright © 2017 Apigee Corporation + +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. + +http://docs.apigee.com/api-services/reference/supported-software diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/node-hosted-express.xml b/doc-samples/hosted-targets/node-hosted-express/apiproxy/node-hosted-express.xml new file mode 100644 index 00000000..f9e67ff5 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/node-hosted-express.xml @@ -0,0 +1,25 @@ + + + /node-hosted-express + + 1512506918706 + kwiese@google.com + + node-hosted-express + 1512506918706 + kwiese@google.com + + + default + + + hosted://app.yaml + hosted://index.js + hosted://package.json + + + + + default + + diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/proxies/default.xml b/doc-samples/hosted-targets/node-hosted-express/apiproxy/proxies/default.xml new file mode 100644 index 00000000..23001cf0 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/proxies/default.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + /node-hosted-express + + default + secure + + + default + + diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/app.yaml b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/app.yaml new file mode 100644 index 00000000..a4175639 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/app.yaml @@ -0,0 +1,8 @@ +runtime: node +runtimeVersion: 8 +application: my-express-app +env: + - name: NODE_ENV + value: production + - name: LOG_LEVEL + value: 3 diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/index.js b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/index.js new file mode 100644 index 00000000..9682d9fe --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/index.js @@ -0,0 +1,15 @@ +var express = require('express') +var app = express() + +app.get('/', function (req, res) { + res.json({ hello: "Hello World!" }) +}) + +app.get('/hello/:name', function (req, res) { + var name = req.params.name + res.json({ hello: "hello " + name }) +}) + +var server = app.listen(process.env.PORT || 9000, function () { + console.log('Listening on port %d', server.address().port) +}) \ No newline at end of file diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/package.json b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/package.json new file mode 100644 index 00000000..ce5c4334 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/resources/hosted/package.json @@ -0,0 +1,13 @@ +{ + "name": "hello-world", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "start": "node index.js --use_strict" + }, + "author": "", + "license": "", + "dependencies": { + "express": "^4.16.0" + } +} diff --git a/doc-samples/hosted-targets/node-hosted-express/apiproxy/targets/default.xml b/doc-samples/hosted-targets/node-hosted-express/apiproxy/targets/default.xml new file mode 100644 index 00000000..82a7ea17 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/apiproxy/targets/default.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc-samples/hosted-targets/node-hosted-express/deploy.txt b/doc-samples/hosted-targets/node-hosted-express/deploy.txt new file mode 100644 index 00000000..f4307553 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-express/deploy.txt @@ -0,0 +1,7 @@ +get_token && apigeetool deployproxy \ + -o apigee-hf-testing \ + -e test \ + --json \ + --token "$(< ~/.sso-cli/valid_token.dat)" \ + --api node-hosted-express \ + --directory . diff --git a/doc-samples/hosted-targets/node-hosted-hello/README.md b/doc-samples/hosted-targets/node-hosted-hello/README.md new file mode 100644 index 00000000..fca9e3d6 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/README.md @@ -0,0 +1,79 @@ +# How to create a hello world Node.js application with Hosted Targets + +This sample is a simple hello world Node.js proxy. + +## Test the app locally + Before pushing to Apigee, it can be useful to test the application locally first to make sure everything is working as it should. + + 1. Make sure you have [Nodejs](https://nodejs.org/en/download/) installed + + 2. Start the application: + + ``` + PORT=8081 node apiproxy/resources/hosted/index.js + ``` + + 3. Test the applicaiton: + + ``` + curl http://localhost:8081 + {"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"} + ``` + +## Deploy the proxy + 1. Make sure you have [apigeetool](https://github.com/apigee/apigeetool-node) installed + 2. Make sure you have [get_token](https://apidocs.apigee.com/api-reference/content/using-oauth2-security-apigee-edge-management-api) script installed + 3. Deploy your proxy: + + ``` + get_token && apigeetool deployproxy \ + -o \ + -e \ + --json \ + --token "$(< ~/.sso-cli/valid_token.dat)" \ + --api node-hosted-hello \ + --directory . + ``` + **Note**: This step might take a minute or two to work + + 4. Test your proxy deployment: + + ``` + curl https:/-.apigee.net/node-hosted-hello + ``` + + 5. Undeploy your proxy: + + ``` + get_token && apigeetool undeploy \ + -o \ + -e \ + --json \ + --token "$(< ~/.sso-cli/valid_token.dat)" \ + --api node-hosted-hello \ + --revision + ``` + + For more insight into Hosted Targets and Apigee, visit our [documentation](https://docs.apigee.com/api-platform/hosted-targets/hosted-targets-overview.html). + +# Ask the community + +[![alt text](../../images/apigee-community.png "Apigee Community is a great place to ask questions and find answers about developing API proxies. ")](https://community.apigee.com?via=github) + +--- + +Copyright © 2017 Apigee Corporation + +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. + +http://docs.apigee.com/api-services/reference/supported-software diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/node-hosted-hello.xml b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/node-hosted-hello.xml new file mode 100644 index 00000000..f7aff875 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/node-hosted-hello.xml @@ -0,0 +1,25 @@ + + + /node-hosted-hello + + 1512506918706 + kwiese@google.com + + node-hosted-hello + 1512506918706 + kwiese@google.com + + + default + + + hosted://app.yaml + hosted://index.js + hosted://package.json + + + + + default + + diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/proxies/default.xml b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/proxies/default.xml new file mode 100644 index 00000000..611eb8d7 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/proxies/default.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + /node-hosted-hello + + default + secure + + + default + + diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/app.yaml b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/app.yaml new file mode 100644 index 00000000..a4918f68 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/app.yaml @@ -0,0 +1,8 @@ +runtime: node +runtimeVersion: 8 +application: my-node-app +env: + - name: NODE_ENV + value: production + - name: LOG_LEVEL + value: 3 diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/index.js b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/index.js new file mode 100644 index 00000000..7140332e --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/index.js @@ -0,0 +1,14 @@ +var http = require('http'); + +console.log('node.js application starting...'); +console.log(process.env); + +var svr = http.createServer(function(req, resp) { + console.log(req.method, req.url); + resp.setHeader("Content-Type", "application/json"); + resp.end(JSON.stringify({ date: new Date(), msg: 'Hello, World!'})); +}); + +svr.listen(process.env.PORT || 9000, function() { + console.log('Node HTTP server is listening'); +}); \ No newline at end of file diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/package.json b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/package.json new file mode 100644 index 00000000..d5315089 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/resources/hosted/package.json @@ -0,0 +1,13 @@ +{ + "name": "hello-world", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "start": "node index.js" + }, + "author": "", + "license": "", + "description": "Hello World Application", + "dependencies": { + } +} \ No newline at end of file diff --git a/doc-samples/hosted-targets/node-hosted-hello/apiproxy/targets/default.xml b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/targets/default.xml new file mode 100644 index 00000000..82a7ea17 --- /dev/null +++ b/doc-samples/hosted-targets/node-hosted-hello/apiproxy/targets/default.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file From 362c356893ed59619731a319429869185364dad0 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Mon, 30 Apr 2018 10:19:40 -0600 Subject: [PATCH 17/35] Update README.md --- doc-samples/hosted-targets/node-hosted-hello/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc-samples/hosted-targets/node-hosted-hello/README.md b/doc-samples/hosted-targets/node-hosted-hello/README.md index fca9e3d6..221d2a4b 100644 --- a/doc-samples/hosted-targets/node-hosted-hello/README.md +++ b/doc-samples/hosted-targets/node-hosted-hello/README.md @@ -58,7 +58,7 @@ This sample is a simple hello world Node.js proxy. # Ask the community -[![alt text](../../images/apigee-community.png "Apigee Community is a great place to ask questions and find answers about developing API proxies. ")](https://community.apigee.com?via=github) +[![alt text](../../../images/apigee-community.png "Apigee Community is a great place to ask questions and find answers about developing API proxies. ")](https://community.apigee.com?via=github) --- From 298a23876901359a84b932fe5477d73a6cf98425 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Mon, 30 Apr 2018 10:20:19 -0600 Subject: [PATCH 18/35] Update README.md --- doc-samples/hosted-targets/node-hosted-express/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc-samples/hosted-targets/node-hosted-express/README.md b/doc-samples/hosted-targets/node-hosted-express/README.md index ba64e22b..dc7878eb 100644 --- a/doc-samples/hosted-targets/node-hosted-express/README.md +++ b/doc-samples/hosted-targets/node-hosted-express/README.md @@ -80,7 +80,7 @@ This sample is a Node.js proxy that uses [express](https://www.npmjs.com/package # Ask the community -[![alt text](../../images/apigee-community.png "Apigee Community is a great place to ask questions and find answers about developing API proxies. ")](https://community.apigee.com?via=github) +[![alt text](../../../images/apigee-community.png "Apigee Community is a great place to ask questions and find answers about developing API proxies. ")](https://community.apigee.com?via=github) --- From c192370c2dca620ad64264879eed9f47a29bf767 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Thu, 10 May 2018 15:21:27 -0600 Subject: [PATCH 19/35] schema does not include unsupported KeyStore element --- schemas/policy/jwt.xsd | 286 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 286 insertions(+) create mode 100644 schemas/policy/jwt.xsd diff --git a/schemas/policy/jwt.xsd b/schemas/policy/jwt.xsd new file mode 100644 index 00000000..7e441285 --- /dev/null +++ b/schemas/policy/jwt.xsd @@ -0,0 +1,286 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 169ab5b87085edaef5e9dce378ea2fcc516134e9 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Fri, 11 May 2018 13:13:32 -0600 Subject: [PATCH 20/35] sync schemas configs --- schemas/policy/assign_message.xsd | 2 +- schemas/policy/cache.xsd | 48 +++---- schemas/policy/extract_variables.xsd | 6 +- schemas/policy/jwt.xsd | 129 +---------------- schemas/policy/message_logging.xsd | 16 +-- schemas/policy/message_validation.xsd | 2 +- schemas/policy/oauth_v1.xsd | 32 ++--- schemas/policy/oauth_v2_verify_api_key.xsd | 130 +++++++++--------- schemas/policy/quota_spike_ratelimit.xsd | 51 +++---- .../policy/regular_expression_protection.xsd | 8 +- 10 files changed, 151 insertions(+), 273 deletions(-) diff --git a/schemas/policy/assign_message.xsd b/schemas/policy/assign_message.xsd index 1237ea5d..b045e81a 100644 --- a/schemas/policy/assign_message.xsd +++ b/schemas/policy/assign_message.xsd @@ -182,8 +182,8 @@ - + diff --git a/schemas/policy/cache.xsd b/schemas/policy/cache.xsd index c05d35b7..deec1728 100644 --- a/schemas/policy/cache.xsd +++ b/schemas/policy/cache.xsd @@ -9,17 +9,12 @@ - + - - - - - - - + + @@ -49,11 +44,11 @@ - + - - - + + + @@ -70,39 +65,44 @@ - + - - + + - + - - + + - + - - - + + + - + - + + + + + + diff --git a/schemas/policy/extract_variables.xsd b/schemas/policy/extract_variables.xsd index 8ebf84d4..f0b142c4 100644 --- a/schemas/policy/extract_variables.xsd +++ b/schemas/policy/extract_variables.xsd @@ -155,19 +155,19 @@ - + - + - + diff --git a/schemas/policy/jwt.xsd b/schemas/policy/jwt.xsd index 7e441285..4f3623f6 100644 --- a/schemas/policy/jwt.xsd +++ b/schemas/policy/jwt.xsd @@ -1,30 +1,10 @@ - - + - - - - - - - - - - - - - - - - - - - @@ -57,44 +37,20 @@ - - - - - - - - - - + - - - - - - - - - - - - - - - - + @@ -105,7 +61,6 @@ - @@ -113,7 +68,6 @@ - @@ -122,7 +76,6 @@ - @@ -132,14 +85,12 @@ - - @@ -147,7 +98,6 @@ - @@ -157,70 +107,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -254,7 +140,6 @@ - @@ -264,14 +149,7 @@ - - - - - - - @@ -283,4 +161,3 @@ - diff --git a/schemas/policy/message_logging.xsd b/schemas/policy/message_logging.xsd index 396d4806..2a733e75 100644 --- a/schemas/policy/message_logging.xsd +++ b/schemas/policy/message_logging.xsd @@ -3,6 +3,13 @@ + + + + + + + @@ -30,19 +37,12 @@ - - - - - - - - + diff --git a/schemas/policy/message_validation.xsd b/schemas/policy/message_validation.xsd index 4b2d5ec1..e8816bc9 100644 --- a/schemas/policy/message_validation.xsd +++ b/schemas/policy/message_validation.xsd @@ -43,8 +43,8 @@ - + diff --git a/schemas/policy/oauth_v1.xsd b/schemas/policy/oauth_v1.xsd index cc18b277..38cbcbca 100644 --- a/schemas/policy/oauth_v1.xsd +++ b/schemas/policy/oauth_v1.xsd @@ -62,18 +62,6 @@ - - - - - - - - - - - - @@ -158,20 +146,32 @@ + + + + + + + + + + + + - + + - + + - - diff --git a/schemas/policy/oauth_v2_verify_api_key.xsd b/schemas/policy/oauth_v2_verify_api_key.xsd index 18e7588e..89b45e64 100644 --- a/schemas/policy/oauth_v2_verify_api_key.xsd +++ b/schemas/policy/oauth_v2_verify_api_key.xsd @@ -10,6 +10,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -64,20 +120,6 @@ - - - - - - - - - - - - - - @@ -102,14 +144,6 @@ - - - - - - - - @@ -125,46 +159,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -176,12 +170,18 @@ - + - - + + + + + + + + diff --git a/schemas/policy/quota_spike_ratelimit.xsd b/schemas/policy/quota_spike_ratelimit.xsd index 52816ab2..35ca2949 100644 --- a/schemas/policy/quota_spike_ratelimit.xsd +++ b/schemas/policy/quota_spike_ratelimit.xsd @@ -12,15 +12,11 @@ - + - - - - - + @@ -39,25 +35,6 @@ - - - - - - - - - - - - - - - - - - - @@ -88,6 +65,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -164,6 +164,7 @@ + diff --git a/schemas/policy/regular_expression_protection.xsd b/schemas/policy/regular_expression_protection.xsd index 958c8486..6034339e 100644 --- a/schemas/policy/regular_expression_protection.xsd +++ b/schemas/policy/regular_expression_protection.xsd @@ -136,13 +136,13 @@ - - + + - - + + From a3a4ec057672df618b1de7a80ace40f6cca0e1e6 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Tue, 22 May 2018 10:49:28 -0600 Subject: [PATCH 21/35] latest xsd generated --- .../configuration/configuration_schemas.xsd | 1478 ++++++++--------- 1 file changed, 731 insertions(+), 747 deletions(-) diff --git a/schemas/configuration/configuration_schemas.xsd b/schemas/configuration/configuration_schemas.xsd index 7e0fc8d8..22fabdbc 100644 --- a/schemas/configuration/configuration_schemas.xsd +++ b/schemas/configuration/configuration_schemas.xsd @@ -7,6 +7,8 @@ + + @@ -89,10 +91,6 @@ - - - - @@ -113,6 +111,8 @@ + + @@ -173,50 +173,31 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - + + + + + + - - - - - + + + + @@ -226,163 +207,63 @@ - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - - + + - - - - - - - + - + + + + - - - - - + + @@ -425,11 +306,6 @@ - - - - - @@ -455,14 +331,6 @@ - - - - - - - - @@ -533,108 +401,42 @@ - + - + + + + + + + + + - - + + + - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + @@ -666,156 +468,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -873,78 +534,284 @@ - - - - - - - - - - - - - + + - - - - - - - + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + - + - - + - + - + - + - - - - - - + @@ -952,6 +819,7 @@ + @@ -976,172 +844,297 @@ - + + + + + + + + + + - + - - - - - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - - - - + + - + - - + + - + - + - - - - - - - - + - - + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + - + - + - + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + - - - + - + - - - - + + + + - + - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -1174,86 +1167,118 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - - - - - - - + - - + + + + + - + - + - - - - - - - - - - - - - - + + + + + + + + - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + - + - - - - - - - - - + + - - - - - - - - + - + @@ -1282,199 +1307,158 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + - + - - + + - + - + - + - + - - - - - + + + - + - + - - - - - - - - - - - - - - - - - - - + - + - - + + + + + + + + + + + + + - + - + - - - - + + + + + + + + + + + + + + - + - - + - + - - - - - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + + + + From 04af847626cb6213cb0a6057606e255a3d03ae83 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Tue, 22 May 2018 10:55:53 -0600 Subject: [PATCH 22/35] added the jwt policy --- schemas/all_policies.xsd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/schemas/all_policies.xsd b/schemas/all_policies.xsd index c57443e7..4ff8d9c7 100644 --- a/schemas/all_policies.xsd +++ b/schemas/all_policies.xsd @@ -17,6 +17,7 @@ + @@ -33,4 +34,4 @@ - \ No newline at end of file + From 70f559c75774f7ddb07049f8f2b714a9611521cb Mon Sep 17 00:00:00 2001 From: Will Witman Date: Tue, 29 May 2018 09:12:06 -0600 Subject: [PATCH 23/35] added note about setVariable argument --- .../com/apigee/flow/message/MessageContext.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/javadocs-javacallout/com/apigee/flow/message/MessageContext.html b/docs/javadocs-javacallout/com/apigee/flow/message/MessageContext.html index 579acd97..3c49ae70 100644 --- a/docs/javadocs-javacallout/com/apigee/flow/message/MessageContext.html +++ b/docs/javadocs-javacallout/com/apigee/flow/message/MessageContext.html @@ -413,7 +413,7 @@

setVariable

Parameters:
name - The name of the flow variable.
-
value - The new value for the variable.
+
value - The new value for the variable. The item is set as an object, and not flattened upon insertion.
Returns:
true if the variable was set; false if the variable is read-only or if it does not exist.
From 8bdb1031025395d3beb13ae6cb615853c637f8c7 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Tue, 29 May 2018 09:24:46 -0600 Subject: [PATCH 24/35] rezipped with latest change --- docs/javadocs-javacallout.zip | Bin 71229 -> 70177 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/javadocs-javacallout.zip b/docs/javadocs-javacallout.zip index 9e3ae678185b7dbc22ace9f9a8df7ebbedb180e9..12d011c6b161c2dae1653787de8e8553ee113e72 100644 GIT binary patch delta 12370 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 q+>)fCFbAO)a^SwEZ*uM zU|;kI8ibvPhl7V52IGVgcJ{OLbP{p(_w+bwMuC{M(l?L4p<^DC6HQw^Z=y~hghDIr zLDi}fAP~wZ1mfRV1`wNeAIV6)neu>5mHffNUC zPf^GhX&-%aN_Fj3Up78h`cOBX1?8HBh?=pDvA?&U6V6oYfc~oKM1}$x(4<7C{ykQi zK-$>i)vo@B>~#b(pZNBM=d#ZgTczv1ku{~{-POwh6FD%F@uj{exUQ!(D@1C})gfHi#LVRDgm|T_W;v4MERD)Na>Li9Gdi#aSu+HXZ&$Ao7tJ%4zsfoR{YQUITyxa)^CzT_StiD&Uh|Pp z%hcpsom{4#_FraD`6G6bN+Uwii%|K(kJ8yMQqHfYEf$726CbgiJJvt5pLLYeA|1)0 z_>j~{7ljT$(Q)^J!6agY2llfkJWK!rK?=sn#ztRR)zH{%J-kqep{<6(i`@`>I|Kp> z@46X$XW*vTMBBVGj2otanJ8o{V)M^ka?~KYD3PP2{v%oi%bf`XdF7@wO1=jiV)0Z6uLHcB-9@a-+l0B zBMh7Kl6)=8?0no@oSfF<_uuJBw`vG@imqAyGXN7A;#A>EH0mqt#L=x6FNP3%S8@as zh}xzaB^fa~=nmiAe<^v1lhnw_?&kx?nPjKHP-hnxq}dtaTcL!B9Lzy+$-Wd?!MCI} zedSEA)s=hf?>G`q$FsNd&TMy33NU;;(D^WwqTMw%C#9ir^P-!o=gRQ^zw@OO8u9N_&8a6F=R z7@MqY>5w8K?6vr6Gx#jyX~^eC%Iwh$=XReO08^CLA_~cI@zZLGx&UW5(!2j7M-d1p zR(QF#Dcb*?a%}$~0RP`I51V+v|9j@q;Aft*hj-BbApMxI)&MU3R?WA`L1nKdF)#X%RV1>}AUl9B!Q}j66%^sGL;yvb?+87)UJSjxAT3vXKmqotAz6WR5Yk)o_-= z2eFrX5EXGGZV&N+XgdINc`8zvnPq%%%IZKJ(92gk#p;mREgF=gUtRtAr~F9Un82L) z$+$L@wAru#l$k$2?J_@LGr#XFjf~c9#S`-Fo>k&D?M^0xu7;>Oed&0?(d2Sh%@FY4 zB^ZPqX6#N?-&7R`fB*9}J@N!2uXcIgij8>h3OUClqacHKtegm?a)MXItoVnS{3JkC zDM^Ifrpgyg_^i^1P@3)mhSkGQr`-AVKl2g_;@|QTZ!fk@PVo5)esOQd`CrXY+wC5X z|I=rqxgq{Ln;BeIdJ-9OxA59aTV7-HOM9~k*P014uq799#uFLJWUIMYbBwOvaZF-2 z^(RV|V!kPYe07?$WRFkBm-E;Nm@t%E{5;5LZO5x!uPs4r`?l7ckV+}qu~h8IWYX1U z;%g3XSm!)LZfT0_?le32RM#2}X4*^yD&TI$oYYyGeFeZrHt<=M;qlVNUz`!jG{tEb(mNx0^t81#}U}Wfb zkU0^*aEkQVYwE|twx!nySyKXb(Ae+wf|ATlJ!aqIe6?$uCdI!!@SFvK3izuQdu^!Ehu>5X2p(K+qyT*s zxZ7lb4ECZ@UDT&U3f@UyD2fLuk|Gf9eDFJI$R-pY4#lbp-gxcp9FF5%bmei-V~>@{ zK&a2OScM{Z4XWUQLwh$tMRCw{c5>t{oP*zRtg~4&6d;SH-Jo-t0)esv2Q6mi7 z;RIpc?c9Q*=;DV^@pp+ayda939*e@>OW6bPRm>h7N&@5Kw*Erw@4-r!4Y?rWh#zrS zfJ$f~7na@i%}H(6Voh0kg&cGt@5Y(MEOG=wOk}&&h~ZpFzekCrNIyV{+!}4ZJ5xvy z=(dMo&m$&A4>y+rqxt z>)z)&c_WAy?G-bmtF_AVRtmm+pO+DwjhK`QH0 zr8Uf#a405HB|?!NwAu;61L1>xen?JuGXN#{VNOG81eJ>Bsizq=Wz{$V+v zqdJY@2F`ql&Y2(h60xwT{pXK*xS-@tLsd?9Ej`NU8yvn;+*Riubt(CORP_6yf@yRM zS($wQxqc9E|9t<}wc2CpR^)ZHzyz!93{ui2SlKmrm;Qc*CYLC*1X|@|P18aqOQV1D zz7YvFl8(+=-aU&Rdk!4#wotpM`+EezR(yOBP2vmenNl22^a}GLo&I6w@1{UqW}}o5 ztn%n`=sSZ@CF#9`;jO165E2CAU-?J^N%oWabbc@T#no`8zK`!VLje$?>DBun`&RvU zvC%OlC82H#0vZSD25~l};Iv!8Bh8IJ16)maokO!X>#361TtOch{WAZqfR9Gaf^;Hu z`5}|96u^G{XRcdht8Dxw`)uCRqYI6C(xRMRBYS%hpI(qQoe#}&rLn`B*!?JiN?5uz8rX)hM5Pk|YabSI;dRU1S`&>TBX*&$D7)tix$QMAjcmU&Py%WM=*CMOIQ>(3D<0+nv+#0eaJMeP&1AkJMY$Hb>`#e zbEZui6UUfe_8W5p3{4t#Kh1W#+swu9=>*W!r2gIZ%*aCckqu&WX>RI-24XC6?L@R_MiLMLQ zzJH(4#`I-5T%1uY!iV9#OCV`5-8FT2X}yCy4o4lD#B@yDdmm2-Km9oA&ZHB2F=WxK zp0tLk^fc_b}0_?5d98z$yv9!GfJ6n^PyUBVZq7v}l72&<}eL#y;{Zro5HnN}Z)Oeo0 zWQ|PVoR$}`wG0}Ge07%h&U}WG&GgxU-@MbK`}<0yB>|3i{al{0-8r%qGcjfrL3cff zZ2iM&zESf@`f0kJJo{Grp%YrEW28T^RHXXZC`20>>cQ@tJ z!-u?6tb%^!c(rMNpP3D)|7|%CP2te3yeINg&t*;<5@xm+uG!D-p;X?e3YlRhbvtS0 znT%`#+ns@(w7$vSYq0zJ<19X?_p}^mH%;w zs)k6344`X$e0RoI%z38w;iM+TpEtxNNfY}s zCKboa^o&*b-RqOxInY{xO|PTt^uD_I(=uYNEm=!*GTeL$5Vs{3^bq-3{oW9vNaEB&xr3f$c+$AFFiW*aH{IXFmJhFE|$cBG51PdSPes z`c+O$4JJ18SH2Ma!xI;;6?c&pnN%OKE&f#eEz#bcLwEP@<0a$NG@SDQV{`r)uVwmLBBj4%s$P}I-$A{WoMag#>3+;-ok5l+ZRhr9Q ziFBM)sU--RiDGDQOPebQ0X$T~>R23V$>@(@(%m{c zz$;xNONd|%|1+X5Jg*E)+iFdW_S8QJ9i%^%Zg^3l+WP27JxO_vCT;v6McL!Cqd2R^Rh8ls&G>LZQJWw zC%Vf<=!Z*1`5z3Ax%d0DbnBk~68!x5VMnc9d82c-b=5Bh)PP5dA84s_=(Dd1P+3si zZ|HvEA!q7!uqDE!?fsc}ncOyorMY4Ho}syFd1;H<-$Jj-V_Lsl3HXx#L{O-NAujmH zk>gP&zHuXuOV#7~g=k_i>gu(0zUabxAJ|$lTB(63w9s~Jb1+~Fx^?>?zlFREoPoq zy7IMp-)_r%O@SLX=-hgCwUE5!PkBvK*!k`Q|;v-jM~ob&0DJz`-3 z3P(@VQ(9vH+kNAfoJR%T>)%|I;-5^`kFqa&f2YYSy}bNtk&{&F_@!^>RN4xtngg

q>_yZGh%AF~}`8DO1G<|wLMz(hy)5KyZO~lNKE&5{AZx@OvmfuY~ z+Gnk$Lnp*1MyU5C*^B30R+9K1jrbP=ToDIl2q|1>d0dxY7?jOaIlP_ zldJ3cKx8oF*TY4=drHaBl#5;TaDJ{@bSFP;t&X;7dSLBoqidOTrH|VZDb8x8~Ibr4yfXU5mx1-1}jcAV69=JKC>AG z)n_1u4x!NL0;I@w#lOyTzhDE^L6miM7LI{+kc7255w@DRnJ0k9t0YCP*Fn~K2UCb3 zUe}%|Qv#6p7_Y99X3?&*QKLm5I3b?R3}Z@M#(K5KjaCiYFt5s(fT}$txsiEa!D`QK zylT&8(rQ)1W`+k>8(F91%uqxA%$lUmP=fw+ZR-yQI0z>3f-V`&8Ht+%ph2Q+}OI!g9Q-8(aFcp$-&Ow z$x+zD4dahjZpA^XgC%g3@g?C9|C5wy}kUMPT z#m*8Ab^Z%9%?L?{+u8)&v9xDhL>@w+e;KNSzf0I@iq{(YYHO81ca?2yb?7Cx}gXNVNXUSanPBGqt1I<}Ts}Ft+S)FxtQ;gHjG&^~7plgX!ENzNj$!f`-{-@Uf?o&INW12D z6R;KuAD?w_sw4q@M4@-<|A~+T{e^!19RO&y1LNT5=HoBoj-i2;Z|$+M{OV#^MkZ~1wJ!Gj{y51*e|8rFz7G;7(YU zQlPmbz-+TQc7HcdauC718CB*0lM6f5f?l6Df`2$P(*hr`p@dl%gc+|{LrqLzZTJYw zfrgK;9IO|c$7)DnoF(NG;7k;*^#`UL76EnrwnM;OSyHY5;0*YZHaOVrftCaxdSQgQ zQV=%28H3lC{`=xqLyT>4W4DbaY)*s@1}O-ez=y!v#%n$S z{}FLGZb^9;_@Y>k_+Om+ub{EvIcEmafWP7XZ-a*o+v=Y*F!HFf0GK{7_tqv3{uV$0 z{6}bKVG|8ZFjPU9%U@7i!}uRjgd>-fi^10!ZrQ-yvFC!B7lcuP@7vXet?ri4ZGirM zjQ7VS-xi@P0WT9)g5v4WYTI@s5Q-jdwT+F%@}xB z9N(Y!%5V(WSl1){WXLlwvmo~wm^+^_-ddw zI=m~6ACznyBjsZWE#wBSsSZa#afSE6#qd^g)qKs3jb{4R^PW$5_q5$@HUJc zsQ??_OxrQwjc@#n%d>+qR-5NrIoQ~4ZIi=eTj7j=#O$gU&{Ggz`&VdR7 z|KdP`9WLcL@i_ihLC#ts07rl%JbXnE0WRb5cjrOjDuHKPYnXiJ!25iW63`kH{{OOu z)Hz(Y!|y-2Vg8k%H7NME-kPyz46=snbA0Rk8pJ=8{^mRQ1`RIHH?FP#0=&Yv+(B%X z`2Xg>WjPgIMCzLmTcrKJIao;!-dZ6|PKF2Sdb0*vQ@DSJKg8eFHZ$pBEN!&d@9;2Ihpn1Zli5VEG((d(KWZVs&kE}P-9EjNs09-N=U$!_TS whEv^e1f;LwN*O Date: Tue, 19 Jun 2018 14:20:00 -0600 Subject: [PATCH 25/35] Update README.md --- schemas/README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/schemas/README.md b/schemas/README.md index 22d91634..01ca8a94 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -1,7 +1,5 @@ -# Schemas are under construction - -The policy schemas are currently under construction (and a little out of date) and will undergo a full update at a time TBD. We don't recommend using them in their current state to build or validate policies. Instead: +## How to use the policy schemas * Use the [policy reference docs](http://apigee.com/docs/api-services/reference/reference-overview-policy) as guidance. @@ -10,13 +8,13 @@ The policy schemas are currently under construction (and a little out of date) a * On the [Update an API Proxy Revision management API call](http://docs.apigee.com/management/apis/post/organizations/%7Borg_name%7D/apis/%7Bapi_name%7D/revisions/%7Brevision_number%7D-0), be sure to set the `validate=true` query parameter. If the bundle isn't valid, you should get a list of errors back without a failed deployment. -# Ask the community +## Ask the community [![alt text](../images/apigee-community.png "Apigee Community is a great place to ask questions and find answers about developing API proxies. ")](https://community.apigee.com?via=github) --- -Copyright © 2017 Google Inc. +Copyright © 2018 Google Inc. 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 From aa0f31e70472a0cbecf7f2065693d933e12cc6b1 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Tue, 19 Jun 2018 14:21:01 -0600 Subject: [PATCH 26/35] Update README.md --- schemas/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/README.md b/schemas/README.md index 01ca8a94..2ff1adff 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -1,7 +1,7 @@ ## How to use the policy schemas -* Use the [policy reference docs](http://apigee.com/docs/api-services/reference/reference-overview-policy) as guidance. +* Use the [policy reference docs](http://apigee.com/docs/api-services/reference/reference-overview-policy) as the primary source of information on using policies. * If you do try to use the schemas to build or validate policies, assume no element ordering in most cases even when the schema says ordering is required. From 0958575fd7d4b1c648e9f8ddda25db8ef48b10a6 Mon Sep 17 00:00:00 2001 From: Will Witman Date: Tue, 19 Jun 2018 14:28:05 -0600 Subject: [PATCH 27/35] Update README.md --- schemas/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/README.md b/schemas/README.md index 2ff1adff..9449a051 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -1,7 +1,7 @@ -## How to use the policy schemas +## About the policy schemas -* Use the [policy reference docs](http://apigee.com/docs/api-services/reference/reference-overview-policy) as the primary source of information on using policies. +* Use the [policy reference docs](http://apigee.com/docs/api-services/reference/reference-overview-policy) as the primary source of information on using policies correctly. * If you do try to use the schemas to build or validate policies, assume no element ordering in most cases even when the schema says ordering is required. From 2f4feaf6a39a689d973f2c83b432a9952e29f44a Mon Sep 17 00:00:00 2001 From: Will Witman Date: Wed, 20 Jun 2018 14:17:51 -0600 Subject: [PATCH 28/35] Added support for the configuring TLS for the HTTP clients created by the policy --- schemas/policy/java_script.xsd | 154 ++++++++++++++++++++++++++++++++- 1 file changed, 150 insertions(+), 4 deletions(-) diff --git a/schemas/policy/java_script.xsd b/schemas/policy/java_script.xsd index 86408c3b..bce61d4f 100644 --- a/schemas/policy/java_script.xsd +++ b/schemas/policy/java_script.xsd @@ -1,30 +1,176 @@ - + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 287238c5f5380c84399ef506ebfb0045ab735f2e Mon Sep 17 00:00:00 2001 From: Steven Traut Date: Mon, 27 Aug 2018 11:39:03 -0400 Subject: [PATCH 29/35] Adding readme for sample code to be added. --- api-baas-transition/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 api-baas-transition/README.md diff --git a/api-baas-transition/README.md b/api-baas-transition/README.md new file mode 100644 index 00000000..b5d8237c --- /dev/null +++ b/api-baas-transition/README.md @@ -0,0 +1,21 @@ +# API BaaS Transition Samples + +In June 2019, Apigee API BaaS will reach end of life (EOL). The sample code included here is intended for those wanting to transition their API BaaS data to services other than the Apigee API BaaS public cloud. + +- Samples list + +--- + +Copyright © 2018 Apigee Corporation + +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. From f973b396ea496b1de04d24103e87070375611519 Mon Sep 17 00:00:00 2001 From: Steve Traut Date: Mon, 27 Aug 2018 11:51:45 -0400 Subject: [PATCH 30/35] Revert "Adding readme for sample code to be added." This reverts commit 287238c5f5380c84399ef506ebfb0045ab735f2e. --- api-baas-transition/README.md | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 api-baas-transition/README.md diff --git a/api-baas-transition/README.md b/api-baas-transition/README.md deleted file mode 100644 index b5d8237c..00000000 --- a/api-baas-transition/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# API BaaS Transition Samples - -In June 2019, Apigee API BaaS will reach end of life (EOL). The sample code included here is intended for those wanting to transition their API BaaS data to services other than the Apigee API BaaS public cloud. - -- Samples list - ---- - -Copyright © 2018 Apigee Corporation - -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. From 3686b4d3580b869347979159220b559207b38cdd Mon Sep 17 00:00:00 2001 From: Steve Traut Date: Tue, 28 Aug 2018 15:27:30 -0400 Subject: [PATCH 31/35] Adding folder and readme for API BaaS transition samples to come. --- api-baas-transition/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 api-baas-transition/README.md diff --git a/api-baas-transition/README.md b/api-baas-transition/README.md new file mode 100644 index 00000000..2d08914a --- /dev/null +++ b/api-baas-transition/README.md @@ -0,0 +1,4 @@ +# Apigee API BaaS Transition Samples + +In June 30, 2019, Apigee API BaaS will reach end of life (EOL). Apigee will continue to operate and support API BaaS until June 30, 2019, subject to the terms of our [deprecation policy](https://docs.apigee.com/release/deprecation.html). Read more on the [Apigee blog](https://apigee.com/about/blog/api-technology/were-sunsetting-apigee-api-baas). + From 9c51b89025b08130efc3cc229ef6c3add58554a4 Mon Sep 17 00:00:00 2001 From: floydjonz Date: Fri, 31 Aug 2018 19:05:52 -0600 Subject: [PATCH 32/35] Add what's new in the docs proxy --- sample-proxies/jira-release-notes/README.md | 12 +++++++----- .../jira-release-notes/jira_whatsnew_proxy.zip | Bin 0 -> 5664 bytes 2 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 sample-proxies/jira-release-notes/jira_whatsnew_proxy.zip diff --git a/sample-proxies/jira-release-notes/README.md b/sample-proxies/jira-release-notes/README.md index b0d985dd..202e6ba0 100644 --- a/sample-proxies/jira-release-notes/README.md +++ b/sample-proxies/jira-release-notes/README.md @@ -1,8 +1,8 @@ # Jira release notes generator -This sample leverages a [Jira API](https://docs.atlassian.com/jira/REST/6.2.7/) to return issues that are tagged in Jira with a 'release_notes' label. The proxy converts Jira's JSON response to XML, then applies an XSL stylesheet that generates HTML-formatted release notes. The stylesheet grabs text from a 'Release Notes Summary' field in Jira. +This sample leverages a [Jira API](https://docs.atlassian.com/jira/REST/6.2.7/) to return issues that are tagged in Jira with a `release_notes` label. The proxy converts Jira's JSON response to XML, then applies an XSL stylesheet that generates HTML-formatted release notes. The stylesheet grabs text from a "Release Notes Summary" field in Jira. -You can also add 'new_feature' and 'known_issue' labels in Jira. Issues with those tags are automatically added to the respective sections of the generated HTML. +You can also add `new_feature` and `known_issue` labels in Jira. Issues with those tags are automatically added to the respective sections of the generated HTML. If your Jira environment uses different fields, modify the URI query parameters accordingly (in invoke.sh as well, if you want to use that script), and modify the .xsl resource file accordingly. @@ -32,11 +32,13 @@ To deploy, run `$ sh deploy.sh` To test, run `$ sh invoke.sh` -# Get help +# What's New in the Docs API proxy -For assistance, please use [Apigee Support](https://community.apigee.com/content/apigee-customer-support). +The `jira_whatsnew_proxy.zip` file is an API proxy similar to the release notes proxy. It generates an HTML page of items to be included in a "What's New in the Docs" topic, similar to [this page in the Apigee docs](https://apigee.devsite.corp.google.com/release/whats-new-docs). -Copyright © 2014, 2015 Apigee Corporation + + +Copyright © 2014, 2018 Apigee Corporation Licensed under the Apache License, Version 2.0 (the "License"); you may not use diff --git a/sample-proxies/jira-release-notes/jira_whatsnew_proxy.zip b/sample-proxies/jira-release-notes/jira_whatsnew_proxy.zip new file mode 100644 index 0000000000000000000000000000000000000000..ac6cab43d9f7406a9fb41c7de2fa1f30df45091e GIT binary patch literal 5664 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 literal 0 HcmV?d00001 From 2413bd312c27aec37ba32aa6ae10cd342728b6d8 Mon Sep 17 00:00:00 2001 From: Steve Traut Date: Wed, 19 Sep 2018 14:33:33 -0400 Subject: [PATCH 33/35] =?UTF-8?q?Removing=20this=20because=20we=E2=80=99re?= =?UTF-8?q?=20not=20going=20to=20use=20it.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api-baas-transition/README.md | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 api-baas-transition/README.md diff --git a/api-baas-transition/README.md b/api-baas-transition/README.md deleted file mode 100644 index 2d08914a..00000000 --- a/api-baas-transition/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Apigee API BaaS Transition Samples - -In June 30, 2019, Apigee API BaaS will reach end of life (EOL). Apigee will continue to operate and support API BaaS until June 30, 2019, subject to the terms of our [deprecation policy](https://docs.apigee.com/release/deprecation.html). Read more on the [Apigee blog](https://apigee.com/about/blog/api-technology/were-sunsetting-apigee-api-baas). - From 1b9ab82db765ab0c318f2b6d848a75367611083f Mon Sep 17 00:00:00 2001 From: Jared Williams Date: Mon, 15 Oct 2018 18:11:15 -0500 Subject: [PATCH 34/35] README updates: Clarified location and permissions needed for kerberos config files. Added step for updating message-processor.properties with necessary java system properties. Added missing semicolon to login.conf. --- .../kerberos-credential-mediation/README.md | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/sample-proxies/kerberos-credential-mediation/README.md b/sample-proxies/kerberos-credential-mediation/README.md index 28bbd697..942f8f44 100644 --- a/sample-proxies/kerberos-credential-mediation/README.md +++ b/sample-proxies/kerberos-credential-mediation/README.md @@ -13,8 +13,7 @@ Note: This sample is applicable only for on-premise installation. # Set up -Edit the properties in ```apiporxy/policies/credentialdelegation.xml``` - +1. Edit the properties in ```apiproxy/policies/credentialdelegation.xml``` ``` krb5.conf @@ -23,9 +22,31 @@ Edit the properties in ```apiporxy/policies/credentialdelegation.xml``` http@server-backend ``` -```krb5.conf```, ```login.conf``` and the necessary keytab files need to be present in the ```APIGEE_INSTALL_ROOT``` -```loginModule``` is the module name to choose from the ```login.conf``` +2. ```krb5.conf```, ```login.conf``` and the necessary keytab files need to be present in the ```/opt``` directory on **all** message-processor nodes. +```loginModule``` is the module name to choose from ```login.conf``` + +3. Ensure that the ```apigee``` user can read these files +``` +chown apigee:apigee /opt/login.conf +chown apigee:apigee /opt/krb5.conf +``` + +4. Edit the properties in ```/opt/apigee/customer/application/message-processor.properties``` on **all** message-processor nodes by adding the following two lines to the end of the file +``` +conf/system.properties+java.security.auth.login.config=/opt/login.conf +conf/system.properties+java.security.krb5.conf=/opt/krb5.conf +``` + +5. Restart **all** message-processor nodes +``` +/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart +``` + +6. Verify the properties have been properly added (you should see the two properites added above) +``` +cat /opt/apigee/edge-message-processor/conf/system.properties +``` # Import and deploy sample project @@ -47,7 +68,7 @@ ServicePrincipalLoginContext useKeyTab=true storeKey=true debug=true; -} +}; ``` krb5.conf From dd8de7150bafc41d2617deca7d5a29b70476009a Mon Sep 17 00:00:00 2001 From: Jared Williams Date: Mon, 15 Oct 2018 18:52:50 -0500 Subject: [PATCH 35/35] README updates: Clarified location and permissions needed for kerberos config files. Added step for updating message-processor.properties with necessary java system properties. Added missing semicolon to login.conf. --- .../kerberos-credential-mediation/README.md | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/sample-proxies/kerberos-credential-mediation/README.md b/sample-proxies/kerberos-credential-mediation/README.md index 28bbd697..942f8f44 100644 --- a/sample-proxies/kerberos-credential-mediation/README.md +++ b/sample-proxies/kerberos-credential-mediation/README.md @@ -13,8 +13,7 @@ Note: This sample is applicable only for on-premise installation. # Set up -Edit the properties in ```apiporxy/policies/credentialdelegation.xml``` - +1. Edit the properties in ```apiproxy/policies/credentialdelegation.xml``` ``` krb5.conf @@ -23,9 +22,31 @@ Edit the properties in ```apiporxy/policies/credentialdelegation.xml``` http@server-backend ``` -```krb5.conf```, ```login.conf``` and the necessary keytab files need to be present in the ```APIGEE_INSTALL_ROOT``` -```loginModule``` is the module name to choose from the ```login.conf``` +2. ```krb5.conf```, ```login.conf``` and the necessary keytab files need to be present in the ```/opt``` directory on **all** message-processor nodes. +```loginModule``` is the module name to choose from ```login.conf``` + +3. Ensure that the ```apigee``` user can read these files +``` +chown apigee:apigee /opt/login.conf +chown apigee:apigee /opt/krb5.conf +``` + +4. Edit the properties in ```/opt/apigee/customer/application/message-processor.properties``` on **all** message-processor nodes by adding the following two lines to the end of the file +``` +conf/system.properties+java.security.auth.login.config=/opt/login.conf +conf/system.properties+java.security.krb5.conf=/opt/krb5.conf +``` + +5. Restart **all** message-processor nodes +``` +/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart +``` + +6. Verify the properties have been properly added (you should see the two properites added above) +``` +cat /opt/apigee/edge-message-processor/conf/system.properties +``` # Import and deploy sample project @@ -47,7 +68,7 @@ ServicePrincipalLoginContext useKeyTab=true storeKey=true debug=true; -} +}; ``` krb5.conf