From 3cdae844a8cad2f020a01665e1649ab281d5a19b Mon Sep 17 00:00:00 2001 From: Youming Lin Date: Tue, 19 Jan 2021 10:11:15 -0600 Subject: [PATCH 1/6] exposer port in Dockerfile (#71) --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index 3e366b0..1531e9c 100755 --- a/Dockerfile +++ b/Dockerfile @@ -17,4 +17,7 @@ USER 1001 COPY . /app ENV FLASK_APP=server/__init__.py + +EXPOSE 3000 + CMD ["python3", "manage.py", "start", "0.0.0.0:3000"] From d4cc939cc0b0dbc10245ae5a1f5044aa694bba2d Mon Sep 17 00:00:00 2001 From: Youming Lin Date: Wed, 27 Jan 2021 11:31:53 -0600 Subject: [PATCH 2/6] Use PORT env var (e.g. in Code Engine environment) (#72) Co-authored-by: Youming Lin --- Dockerfile | 3 ++- README.md | 8 +++++++- manage.py | 9 ++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1531e9c..cd250de 100755 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,8 @@ USER 1001 COPY . /app ENV FLASK_APP=server/__init__.py +ENV PORT 3000 EXPOSE 3000 -CMD ["python3", "manage.py", "start", "0.0.0.0:3000"] +CMD ["python3", "manage.py", "start"] diff --git a/README.md b/README.md index d7e0fe2..e7f775f 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,13 @@ Running Flask applications has been simplified with a `manage.py` file to avoid pipenv install ``` -To run your application locally: +Then, activate this app's virtualenv: + +```bash +pipenv shell +``` + +To run your application locally, run this inside the virtualenv: ```bash python manage.py start diff --git a/manage.py b/manage.py index 7c79268..2cc23fd 100755 --- a/manage.py +++ b/manage.py @@ -1,9 +1,12 @@ import os, sys, argparse, subprocess, signal +# Tip from: +# https://github.com/dpgaspar/Flask-AppBuilder/issues/733#issuecomment-379009480 +PORT = int(os.environ.get("PORT", 3000)) + # Project defaults FLASK_APP = 'server/__init__.py' -DEFAULT_IP = '0.0.0.0:3000' - +DEFAULT_IP = '0.0.0.0:' + str(PORT) class Command: def __init__(self, name, descr, runcmd, env={}): @@ -99,7 +102,7 @@ def availableCommands(self): formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument("subcommand", help="subcommand to run (see list above)") parser.add_argument("ipaddress", nargs='?', default=DEFAULT_IP, - help="address and port to run on (i.e. {0})".format(DEFAULT_IP)) + help="address and port to run on (i.e. 0.0.0.0:3000)") def livereload_check(): From 65951d5d1d8ed0595750e5bc133f6bb04011c1a1 Mon Sep 17 00:00:00 2001 From: Youming Lin Date: Mon, 15 Feb 2021 15:27:28 -0600 Subject: [PATCH 3/6] Pass docker lint for Tekton deployment (#74) Co-authored-by: Youming Lin --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cd250de..18116ed 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi8 +FROM registry.access.redhat.com/ubi8:8.3 WORKDIR /app From 9db8500d5590420b01d4b575b02246248f0d7e51 Mon Sep 17 00:00:00 2001 From: Chuck Cox Date: Tue, 23 Mar 2021 18:20:56 -0500 Subject: [PATCH 4/6] chore: upgrade dependencies --- Pipfile.lock | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 58ae0be..10682d0 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -19,6 +19,7 @@ "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "version": "==7.1.2" }, "decorator": { @@ -57,14 +58,16 @@ "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.1.0" }, "jinja2": { "hashes": [ - "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", - "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" + "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419", + "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6" ], - "version": "==2.11.2" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==2.11.3" }, "jsonpath-rw": { "hashes": [ @@ -86,8 +89,12 @@ "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", + "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f", + "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39", "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014", + "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f", "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", @@ -96,25 +103,41 @@ "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85", + "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1", "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850", + "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0", "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb", "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1", + "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2", "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7", "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8", "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193", "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b", "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5", + "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c", + "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032", "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", - "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be", + "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.1.1" }, "ply": { @@ -137,6 +160,7 @@ "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.15.0" }, "tornado": { @@ -183,6 +207,7 @@ "sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68", "sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5" ], + "markers": "python_version >= '3.5'", "version": "==6.1" }, "werkzeug": { @@ -190,6 +215,7 @@ "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "version": "==1.0.1" } }, From 72201c58e902b0f090cbf200e264da56d2a5783b Mon Sep 17 00:00:00 2001 From: Chuck Cox Date: Wed, 31 Mar 2021 15:01:02 -0500 Subject: [PATCH 5/6] chore: removing swagger (#79) * chore: removing swagger * new: swagger-ui-py * chore: rm wrong files * chore: add swagger dependency * fix: wrong dependency * chore: rm swagger from Dockerfile * chore: removed space * new: flasgger module * new: flasgger module --- Pipfile | 1 + Pipfile.lock | 101 +- public/index.html | 24 +- public/swagger-ui/css/print.css | 1 - public/swagger-ui/css/reset.css | 1 - public/swagger-ui/css/screen.css | 1 - public/swagger-ui/css/style.css | 1 - public/swagger-ui/css/typography.css | 0 public/swagger-ui/fonts/DroidSans-Bold.ttf | Bin 42480 -> 0 bytes public/swagger-ui/fonts/DroidSans.ttf | Bin 41028 -> 0 bytes public/swagger-ui/images/collapse.gif | Bin 69 -> 0 bytes public/swagger-ui/images/expand.gif | Bin 73 -> 0 bytes public/swagger-ui/images/explorer_icons.png | Bin 3008 -> 0 bytes public/swagger-ui/images/favicon-16x16.png | Bin 445 -> 0 bytes public/swagger-ui/images/favicon-32x32.png | Bin 1141 -> 0 bytes public/swagger-ui/images/favicon.ico | Bin 5430 -> 0 bytes public/swagger-ui/images/logo_small.png | Bin 455 -> 0 bytes public/swagger-ui/images/pet_store_api.png | Bin 631 -> 0 bytes public/swagger-ui/images/throbber.gif | Bin 9257 -> 0 bytes public/swagger-ui/images/wordnik_api.png | Bin 670 -> 0 bytes public/swagger-ui/index.html | 108 - public/swagger-ui/lang/ca.js | 53 - public/swagger-ui/lang/el.js | 56 - public/swagger-ui/lang/en.js | 56 - public/swagger-ui/lang/es.js | 53 - public/swagger-ui/lang/fr.js | 54 - public/swagger-ui/lang/geo.js | 56 - public/swagger-ui/lang/it.js | 52 - public/swagger-ui/lang/ja.js | 56 - public/swagger-ui/lang/ko-kr.js | 53 - public/swagger-ui/lang/pl.js | 53 - public/swagger-ui/lang/pt.js | 53 - public/swagger-ui/lang/ru.js | 56 - public/swagger-ui/lang/tr.js | 53 - public/swagger-ui/lang/translator.js | 39 - public/swagger-ui/lang/zh-cn.js | 56 - public/swagger-ui/lib/backbone-min.js | 1 - public/swagger-ui/lib/es5-shim.js | 1 - public/swagger-ui/lib/handlebars-4.0.5.js | 3 - public/swagger-ui/lib/highlight.9.1.0.pack.js | 1 - .../lib/highlight.9.1.0.pack_extended.js | 1 - public/swagger-ui/lib/jquery-1.8.0.min.js | 3 - public/swagger-ui/lib/jquery.ba-bbq.min.js | 1 - public/swagger-ui/lib/jquery.slideto.min.js | 1 - public/swagger-ui/lib/jquery.wiggle.min.js | 1 - public/swagger-ui/lib/js-yaml.min.js | 2 - public/swagger-ui/lib/jsoneditor.min.js | 5 - public/swagger-ui/lib/lodash.min.js | 2 - public/swagger-ui/lib/marked.js | 1 - .../swagger-ui/lib/object-assign-pollyfill.js | 1 - public/swagger-ui/lib/sanitize-html.min.js | 4 - public/swagger-ui/lib/swagger-oauth.js | 1 - public/swagger-ui/o2c.html | 20 - public/swagger-ui/swagger-ui.js | 25378 ---------------- public/swagger-ui/swagger-ui.min.js | 15 - public/swagger.yaml | 2 +- server/routes/index.py | 4 +- server/routes/swagger.py | 29 +- 58 files changed, 145 insertions(+), 26369 deletions(-) delete mode 100755 public/swagger-ui/css/print.css delete mode 100755 public/swagger-ui/css/reset.css delete mode 100755 public/swagger-ui/css/screen.css delete mode 100755 public/swagger-ui/css/style.css delete mode 100755 public/swagger-ui/css/typography.css delete mode 100755 public/swagger-ui/fonts/DroidSans-Bold.ttf delete mode 100755 public/swagger-ui/fonts/DroidSans.ttf delete mode 100755 public/swagger-ui/images/collapse.gif delete mode 100755 public/swagger-ui/images/expand.gif delete mode 100644 public/swagger-ui/images/explorer_icons.png delete mode 100755 public/swagger-ui/images/favicon-16x16.png delete mode 100755 public/swagger-ui/images/favicon-32x32.png delete mode 100755 public/swagger-ui/images/favicon.ico delete mode 100755 public/swagger-ui/images/logo_small.png delete mode 100755 public/swagger-ui/images/pet_store_api.png delete mode 100755 public/swagger-ui/images/throbber.gif delete mode 100755 public/swagger-ui/images/wordnik_api.png delete mode 100755 public/swagger-ui/index.html delete mode 100755 public/swagger-ui/lang/ca.js delete mode 100755 public/swagger-ui/lang/el.js delete mode 100755 public/swagger-ui/lang/en.js delete mode 100755 public/swagger-ui/lang/es.js delete mode 100755 public/swagger-ui/lang/fr.js delete mode 100755 public/swagger-ui/lang/geo.js delete mode 100755 public/swagger-ui/lang/it.js delete mode 100755 public/swagger-ui/lang/ja.js delete mode 100755 public/swagger-ui/lang/ko-kr.js delete mode 100755 public/swagger-ui/lang/pl.js delete mode 100755 public/swagger-ui/lang/pt.js delete mode 100755 public/swagger-ui/lang/ru.js delete mode 100755 public/swagger-ui/lang/tr.js delete mode 100755 public/swagger-ui/lang/translator.js delete mode 100755 public/swagger-ui/lang/zh-cn.js delete mode 100755 public/swagger-ui/lib/backbone-min.js delete mode 100755 public/swagger-ui/lib/es5-shim.js delete mode 100755 public/swagger-ui/lib/handlebars-4.0.5.js delete mode 100755 public/swagger-ui/lib/highlight.9.1.0.pack.js delete mode 100755 public/swagger-ui/lib/highlight.9.1.0.pack_extended.js delete mode 100755 public/swagger-ui/lib/jquery-1.8.0.min.js delete mode 100755 public/swagger-ui/lib/jquery.ba-bbq.min.js delete mode 100755 public/swagger-ui/lib/jquery.slideto.min.js delete mode 100755 public/swagger-ui/lib/jquery.wiggle.min.js delete mode 100755 public/swagger-ui/lib/js-yaml.min.js delete mode 100755 public/swagger-ui/lib/jsoneditor.min.js delete mode 100755 public/swagger-ui/lib/lodash.min.js delete mode 100755 public/swagger-ui/lib/marked.js delete mode 100755 public/swagger-ui/lib/object-assign-pollyfill.js delete mode 100755 public/swagger-ui/lib/sanitize-html.min.js delete mode 100755 public/swagger-ui/lib/swagger-oauth.js delete mode 100755 public/swagger-ui/o2c.html delete mode 100755 public/swagger-ui/swagger-ui.js delete mode 100755 public/swagger-ui/swagger-ui.min.js mode change 100755 => 100644 public/swagger.yaml mode change 100755 => 100644 server/routes/swagger.py diff --git a/Pipfile b/Pipfile index 381d8b0..f40d3db 100644 --- a/Pipfile +++ b/Pipfile @@ -11,3 +11,4 @@ ibmcloudenv = "*" livereload = "*" flask = ">=1.0.0" prometheus_client = "*" +flasgger = "*" diff --git a/Pipfile.lock b/Pipfile.lock index 10682d0..9d0a8a6 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "22c916214d6a81da40bc4fadde75632b9651cefec8d0fe9444f3b2ec37ed757e" + "sha256": "aa798b8222376cd11e1a22e94ddbcd9a8219b1b96ba9bffb1c72dde2dd4464b8" }, "pipfile-spec": 6, "requires": {}, @@ -14,6 +14,14 @@ ] }, "default": { + "attrs": { + "hashes": [ + "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6", + "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==20.3.0" + }, "click": { "hashes": [ "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", @@ -29,6 +37,14 @@ ], "version": "==4.4.2" }, + "flasgger": { + "hashes": [ + "sha256:0603941cf4003626b4ee551ca87331f1d17b8eecce500ccf1a1f1d3a332fc94a", + "sha256:6ebea406b5beecd77e8da42550f380d4d05a6107bc90b69ce9e77aee7612e2d0" + ], + "index": "pypi", + "version": "==0.9.5" + }, "flask": { "hashes": [ "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060", @@ -53,6 +69,14 @@ "index": "pypi", "version": "==0.2.1" }, + "importlib-metadata": { + "hashes": [ + "sha256:c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a", + "sha256:d2d46ef77ffc85cbf7dac7e81dd663fde71c45326131bea8033b9bad42268ebe" + ], + "markers": "python_version < '3.8'", + "version": "==3.10.0" + }, "itsdangerous": { "hashes": [ "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", @@ -75,6 +99,13 @@ ], "version": "==1.4.0" }, + "jsonschema": { + "hashes": [ + "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163", + "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a" + ], + "version": "==3.2.0" + }, "livereload": { "hashes": [ "sha256:776f2f865e59fde56490a56bcc6773b6917366bce0c267c60ee8aaf1a0959869" @@ -140,6 +171,13 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.1.1" }, + "mistune": { + "hashes": [ + "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e", + "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4" + ], + "version": "==0.8.4" + }, "ply": { "hashes": [ "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3", @@ -155,6 +193,48 @@ "index": "pypi", "version": "==0.9.0" }, + "pyrsistent": { + "hashes": [ + "sha256:2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e" + ], + "markers": "python_version >= '3.5'", + "version": "==0.17.3" + }, + "pyyaml": { + "hashes": [ + "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf", + "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696", + "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393", + "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77", + "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922", + "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5", + "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8", + "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10", + "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc", + "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018", + "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e", + "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253", + "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347", + "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183", + "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541", + "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb", + "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185", + "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc", + "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db", + "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa", + "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46", + "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122", + "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b", + "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63", + "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df", + "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc", + "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247", + "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6", + "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==5.4.1" + }, "six": { "hashes": [ "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", @@ -210,6 +290,15 @@ "markers": "python_version >= '3.5'", "version": "==6.1" }, + "typing-extensions": { + "hashes": [ + "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918", + "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c", + "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f" + ], + "markers": "python_version < '3.8'", + "version": "==3.7.4.3" + }, "werkzeug": { "hashes": [ "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", @@ -217,7 +306,15 @@ ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "version": "==1.0.1" + }, + "zipp": { + "hashes": [ + "sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76", + "sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098" + ], + "markers": "python_version >= '3.6'", + "version": "==3.4.1" } }, "develop": {} -} +} \ No newline at end of file diff --git a/public/index.html b/public/index.html index b37e659..ee58260 100755 --- a/public/index.html +++ b/public/index.html @@ -2,7 +2,7 @@ IBM Cloud Web Starter - + @@ -12,7 +12,27 @@

Congratulations!

You are currently running a Python app built for the IBM Cloud.

-
    +
    +

    + This starter application is a working illustration of a basic microservice that incorporates the Flask web framework to provide a landing page and two endpoints. +

    +

    + A microservice is an individual component of an application that follows the microservice architecture - an architectural style that structures an application as a collection of loosely coupled services, each of which implement a business capability. The microservice exposes a RESTful API matching a Swagger definition. +

    + This Flask microservice has these endpoints: +
      +
    • + /health - returns a simple {"status":"UP"} json response if the app is running +
    • +
    • + /swagger/api-docs - standard Swagger UI to exercise all the endpoints +
    • +
    +

    + Feel free to extend this application for your own use case. +

    +
    +