From 2d7869429682886a3d6f2011f28bd3574807ba77 Mon Sep 17 00:00:00 2001 From: levi Date: Fri, 20 Sep 2019 14:45:28 -0700 Subject: [PATCH] Chore/public merge 0.37 (#315) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update dependency lodash to v4.17.13 [SECURITY] (#1395) * docs(add-plugin) delete unused page (#1400) Topic covered in enable-plugin. * add custom plugin apig-response-transform (#1365) * Release/0.35-3 (#1406) * chore(ee/changelog) release 0.34-1 FT-358 (#210) * docs(ee/changelog) 0.34-1 release * chore(ee/changelog) remove trailing whitespace * docs(openid-connect) updated doc to 2.7.0 version * docs(edits) copy and style edits * chore(*) merge public repo (#211) * chore(*) merge public repo * chore(*) merge public repo (#219) * feat(docs): 0.35 Release Base * docs(35): Bump EE Latest Version (#232) * update travis node version * docs(35) navigation (#231) * feat(nav): Adds 3 level navigation (#233) * docs(35/deployment) copy licensing section (#220) * Docs/35 nav (#235) * docs(35) navigation updates * docs(35): Dev Portal Init * docs(35/deployment) (#238) * docs(35/docker) (#222) * docs(35/centos) (#223) * docs(35/amazon-linux) (#224) * fix 35 nav formatting * docs(nav) remove duplicate sections * docs(35/km/overview) copy old overview * docs(35/km/overview) replace start with networking * docs(35/km/overview) clarify section * docs(35/km/overview) rbac rewording * docs(35/km/overview) move workspaces above rbac * refactor(35/km/overview) fix new lines * docs(35/km/overview) rbac rewording * docs(35/km/overview) admins rewording * docs(35/km/overview) networking button rewording * docs(35/km/overview) reword workspaces * fix(35): Add index.md * fix(35): Update Admin API Nav (#244) * fix(35): Update Admin API Nav * feat(docs): 35 Index Page Init (#246) * Docs/35 dev portal config (#247) * docs(dev-portal): Auth types * Docs/35 dev portal config (#248) * add warning to basic auth * add workspaces * docs(35): Audit Log (#249) * docs(35): Vitals (#239) * docs(35): Dev Portal Networking Ref (#243) * docs(35): Property Reference (#251) * docs(35/manager) Kong Manager TD-121 (#245) For RC only * docs(35)/dev-portal (#236) * Docs/35 temp plugins (#252) * Revert "docs(35)/dev-portal (#236)" (#253) This reverts commit 0d9c2afad73734443ea73d367c15ef0da06e5c87. * Docs/35 dev portal temp (#255) * Docs/getting started temp (#257) * docs(35/prop-ref) correct name of prop * docs(35) Admin API (#258) * docs(35) administration (#259) * docs(35) remove ad from nav * docs(35) update admin * docs(35) reposition nav (#260) * docs(35) navigation improvements and fixes (#261) * docs(35) refine getting started (#262) * docs(35/admin) update reference docs (#263) * alter nav for rc (#264) * docs(35/km/auth/oidc) close bracket Thank you, @Jlawlzz . * docs(35/admin-api) add examples and corrections (#265) * fix(35) add items to navigation (#266) * fix(35/nav) remove typo in nav * docs(35/admin/example) MVP walkthrough (#267) * docs(35) start securing km section * docs(35/getting-started) feedback corrections * docs(35/admins/ref) add missing attributes (#269) * docs(35/*) provide security documentation (#270) * docs(35/km/oidc) improve OIDC (#271) * docs(35/start) add a note that only one super admin may be seeded * docs(35) add warning about samesite (#273) * docs(35/admins/ref) add generate_register_url description INTF-1506 (#272) Review in staging. * docs(35/plugin/session) add session doc (#275) * fix(35/plugin/session) fix template type * docs(35/getting-started) improve getting started intro (#274) * docs(ldap-auth-advanced) change property name from ssl to ldaps (#268) * docs(35/admin-api) update workspaces and rbac responses (#276) * docs(35/rbac/api) update endpoint permission responses * docs(35/rbac) permissions endpoints update * docs(index): Update index grid (#278) * docs(index): Update index grid * docs(docker): Update installation commands (#277) * docs(docker): Update installation commands * docs(35): Add plugin redirects (#250) * docs(35): Add plugin redirects * Docs/35 plugins (#280) * add redirects for jwt and rbh * init dev portal files * docs(35/*) session config and disclaimer (#283) * Adds details to session configuration * All places that suggest setting `enforce_rbac = on` now mention `admin_gui_session_conf` * Adds a disclaimer to any example pertaining to `secret`, `cookie_secure`, and `cookie_samesite` * All entry points (i.e. places that suggest setting `admin_gui_session_conf`) link to Kong Manager Session doc, which in turn links to Session Plugin after distinguishing the 2 * Clear statement that Session Plugin is required with any auth type * General stylistic cleanup around the Session page titles * docs(getting-started): Add grid overview (#282) * hotfix(35/session) fix yml format * add managing developers * update nav for internal preview * docs(vault-auth) add 0.1-x vault-auth docs (#216) * docs(vault-auth) add 0.1-x vault-auth docs * add dev portal docs * add overview to getting started * docs(35/km/ws) add note about admins without roles having "access" - EBB 90 (#281) * docs(35/nav) remove install overview * docs(35/nav) move down overview to distinct section * docs(35/nav) flatten nav for upgrades * docs(35/*) add migration guide * docs(35/nav) remove aws guide link until update is ready * hotfix(35/migrations) fix link * hotfix(35/migrations) fix links * docs(35/migrations) style the 'important' block * docs(35/migrations) make external links open new windows * docs(35/amazon-linux) fix migrations option * docs(35/docker) fix migrations option * docs(35/install) hide unused guides * docs(35/*) fix config link * fix(35/start) fix link * fix(35/start) fix link * fix(35/*) getting started links * docs(35/*) add security sec * dev portal updates * Chore/public merge (#286) - merge public repo * fix merge conflicts * merge public repo * Release/0.35 3 (#294) * docs(rate-limiting-advanced) add configuration parameter for redis cluster * write(35/km) how to reset password and rbac token (#287) * write(35/km) how to reset password and rbac token * change hard links to header links * fix bold formatted words * fix list numbering * change hard links to dynamic * add page to navigation * Update app/enterprise/0.35-x/kong-manager/reset-password.md * Update app/enterprise/0.35-x/kong-manager/reset-password.md Co-Authored-By: levi * Update app/enterprise/0.35-x/kong-manager/reset-password.md * docs(enterprise/migrations) migrate-apis CLI guide (#289) * chore(properties) add description fro db_cache_warmup_entities configuration (#290) * chore(changelog) add 0.35-1 and 0.35-3 to changelog for this release (#291) * chore(changelog) add 0.35-1 and 0.35-3 to changelog for this release * apply suggestions from code review * Add cli.md to enterprise doc tree (#292) * chore(cli) duplicate core cli doc and add new enterprise migrations commands * chore(nav) update nav to pick up new cli file * copy updates * changelog formatting Adds references to API migration guide to 0.35 migration guide * remove extra line * Add Upstream TLS to Hub (#295) * Add Upstream TLS to Hub * Add to nav * Clearer explanation for known issue * Delete adding-your-api.md * Delete adding-your-api.md * Delete best-practices.md * Delete index.md * Delete disabling-auth.md * Delete aws-cloudfront.md * Delete index.md * Delete admins.md * Delete quickstart.md * Delete google-cloud.md * Delete route-by-headers.md * Delete understanding-page-routing.md * Update macos.md * Update autodoc-admin-api/run.lua * Update autodoc-admin-api/run.lua * Delete package-lock.json * fix package-lock * package-lock * docs(cli-ref) fix link to conf ref (#1412) Updates link to Enterprise-version; currently 404s. * fix cli link typo * Docs/35 install ubuntu (#1396) * init ubuntu 35 doc * doc(installation): Add 0.35 Ubuntu doc * Update app/enterprise/0.35-x/deployment/installation/ubuntu.md * Update acl/index.md (#1411) declarative config for acls expects array * fix egregious broken links while at it * docs(pdk) kong.request.get_http_version() returns a number, not a string Since this has been the case since the first version in the PDK, this change updates thes fields manually (they are usually auto-generated, but the tags for the versions are fixed and can't be changed in order to auto-generate them correctly). * Revert Plugins to Hub in main site nav * End of A/B Test * docs(hub) introduce decK (#1418) * docs(hub) introduce decK * fix typos * add icon * update decK version compat * docs(35/km/reset-password) add screenshots (#1413) * docs(35/km/reset-password) add screenshots * docs(admin-api) redirect index to ref (#1420) KM currently links to `/admin-api/admins`. There will eventually be an explanatory doc for this path. For now, it should redirect to the API reference since otherwise it 404s. * update plugin versions * 0.36 Release (#1430) * chore(ee/changelog) release 0.34-1 FT-358 (#210) * docs(ee/changelog) 0.34-1 release * chore(ee/changelog) remove trailing whitespace * docs(openid-connect) updated doc to 2.7.0 version * docs(edits) copy and style edits * chore(*) merge public repo (#211) * chore(*) merge public repo * chore(*) merge public repo (#219) * feat(docs): 0.35 Release Base * docs(35): Bump EE Latest Version (#232) * update travis node version * docs(35) navigation (#231) * feat(nav): Adds 3 level navigation (#233) * docs(35/deployment) copy licensing section (#220) * Docs/35 nav (#235) * docs(35) navigation updates * docs(35): Dev Portal Init * docs(35/deployment) (#238) * docs(35/docker) (#222) * docs(35/centos) (#223) * docs(35/amazon-linux) (#224) * fix 35 nav formatting * docs(nav) remove duplicate sections * docs(35/km/overview) copy old overview * docs(35/km/overview) replace start with networking * docs(35/km/overview) clarify section * docs(35/km/overview) rbac rewording * docs(35/km/overview) move workspaces above rbac * refactor(35/km/overview) fix new lines * docs(35/km/overview) rbac rewording * docs(35/km/overview) admins rewording * docs(35/km/overview) networking button rewording * docs(35/km/overview) reword workspaces * fix(35): Add index.md * fix(35): Update Admin API Nav (#244) * fix(35): Update Admin API Nav * feat(docs): 35 Index Page Init (#246) * Docs/35 dev portal config (#247) * docs(dev-portal): Auth types * Docs/35 dev portal config (#248) * add warning to basic auth * add workspaces * docs(35): Audit Log (#249) * docs(35): Vitals (#239) * docs(35): Dev Portal Networking Ref (#243) * docs(35): Property Reference (#251) * docs(35/manager) Kong Manager TD-121 (#245) For RC only * docs(35)/dev-portal (#236) * Docs/35 temp plugins (#252) * Revert "docs(35)/dev-portal (#236)" (#253) This reverts commit 0d9c2afad73734443ea73d367c15ef0da06e5c87. * Docs/35 dev portal temp (#255) * Docs/getting started temp (#257) * docs(35/prop-ref) correct name of prop * docs(35) Admin API (#258) * docs(35) administration (#259) * docs(35) remove ad from nav * docs(35) update admin * docs(35) reposition nav (#260) * docs(35) navigation improvements and fixes (#261) * docs(35) refine getting started (#262) * docs(35/admin) update reference docs (#263) * alter nav for rc (#264) * docs(35/km/auth/oidc) close bracket Thank you, @Jlawlzz . * docs(35/admin-api) add examples and corrections (#265) * fix(35) add items to navigation (#266) * fix(35/nav) remove typo in nav * docs(35/admin/example) MVP walkthrough (#267) * docs(35) start securing km section * docs(35/getting-started) feedback corrections * docs(35/admins/ref) add missing attributes (#269) * docs(35/*) provide security documentation (#270) * docs(35/km/oidc) improve OIDC (#271) * docs(35/start) add a note that only one super admin may be seeded * docs(35) add warning about samesite (#273) * docs(35/admins/ref) add generate_register_url description INTF-1506 (#272) Review in staging. * docs(35/plugin/session) add session doc (#275) * fix(35/plugin/session) fix template type * docs(35/getting-started) improve getting started intro (#274) * docs(ldap-auth-advanced) change property name from ssl to ldaps (#268) * docs(35/admin-api) update workspaces and rbac responses (#276) * docs(35/rbac/api) update endpoint permission responses * docs(35/rbac) permissions endpoints update * docs(index): Update index grid (#278) * docs(index): Update index grid * docs(docker): Update installation commands (#277) * docs(docker): Update installation commands * docs(35): Add plugin redirects (#250) * docs(35): Add plugin redirects * Docs/35 plugins (#280) * add redirects for jwt and rbh * init dev portal files * docs(35/*) session config and disclaimer (#283) * Adds details to session configuration * All places that suggest setting `enforce_rbac = on` now mention `admin_gui_session_conf` * Adds a disclaimer to any example pertaining to `secret`, `cookie_secure`, and `cookie_samesite` * All entry points (i.e. places that suggest setting `admin_gui_session_conf`) link to Kong Manager Session doc, which in turn links to Session Plugin after distinguishing the 2 * Clear statement that Session Plugin is required with any auth type * General stylistic cleanup around the Session page titles * docs(getting-started): Add grid overview (#282) * hotfix(35/session) fix yml format * add managing developers * update nav for internal preview * docs(vault-auth) add 0.1-x vault-auth docs (#216) * docs(vault-auth) add 0.1-x vault-auth docs * add dev portal docs * add overview to getting started * docs(35/km/ws) add note about admins without roles having "access" - EBB 90 (#281) * docs(35/nav) remove install overview * docs(35/nav) move down overview to distinct section * docs(35/nav) flatten nav for upgrades * docs(35/*) add migration guide * docs(35/nav) remove aws guide link until update is ready * hotfix(35/migrations) fix link * hotfix(35/migrations) fix links * docs(35/migrations) style the 'important' block * docs(35/migrations) make external links open new windows * docs(35/amazon-linux) fix migrations option * docs(35/docker) fix migrations option * docs(35/install) hide unused guides * docs(35/*) fix config link * fix(35/start) fix link * fix(35/start) fix link * fix(35/*) getting started links * docs(35/*) add security sec * dev portal updates * Chore/public merge (#286) - merge public repo * fix merge conflicts * merge public repo * Release/0.35 3 (#294) * docs(rate-limiting-advanced) add configuration parameter for redis cluster * write(35/km) how to reset password and rbac token (#287) * write(35/km) how to reset password and rbac token * change hard links to header links * fix bold formatted words * fix list numbering * change hard links to dynamic * add page to navigation * Update app/enterprise/0.35-x/kong-manager/reset-password.md * Update app/enterprise/0.35-x/kong-manager/reset-password.md Co-Authored-By: levi * Update app/enterprise/0.35-x/kong-manager/reset-password.md * docs(enterprise/migrations) migrate-apis CLI guide (#289) * chore(properties) add description fro db_cache_warmup_entities configuration (#290) * chore(changelog) add 0.35-1 and 0.35-3 to changelog for this release (#291) * chore(changelog) add 0.35-1 and 0.35-3 to changelog for this release * apply suggestions from code review * Add cli.md to enterprise doc tree (#292) * chore(cli) duplicate core cli doc and add new enterprise migrations commands * chore(nav) update nav to pick up new cli file * copy updates * changelog formatting Adds references to API migration guide to 0.35 migration guide * remove extra line * Add Upstream TLS to Hub (#295) * Add Upstream TLS to Hub * Add to nav * Clearer explanation for known issue * Chore/public merge (#296) * Update dependency lodash to v4.17.13 [SECURITY] (#1395) * docs(add-plugin) delete unused page (#1400) Topic covered in enable-plugin. * add custom plugin apig-response-transform (#1365) * Release/0.35-3 (#1406) * chore(ee/changelog) release 0.34-1 FT-358 (#210) * docs(ee/changelog) 0.34-1 release * chore(ee/changelog) remove trailing whitespace * docs(openid-connect) updated doc to 2.7.0 version * docs(edits) copy and style edits * chore(*) merge public repo (#211) * chore(*) merge public repo * chore(*) merge public repo (#219) * feat(docs): 0.35 Release Base * docs(35): Bump EE Latest Version (#232) * update travis node version * docs(35) navigation (#231) * feat(nav): Adds 3 level navigation (#233) * docs(35/deployment) copy licensing section (#220) * Docs/35 nav (#235) * docs(35) navigation updates * docs(35): Dev Portal Init * docs(35/deployment) (#238) * docs(35/docker) (#222) * docs(35/centos) (#223) * docs(35/amazon-linux) (#224) * fix 35 nav formatting * docs(nav) remove duplicate sections * docs(35/km/overview) copy old overview * docs(35/km/overview) replace start with networking * docs(35/km/overview) clarify section * docs(35/km/overview) rbac rewording * docs(35/km/overview) move workspaces above rbac * refactor(35/km/overview) fix new lines * docs(35/km/overview) rbac rewording * docs(35/km/overview) admins rewording * docs(35/km/overview) networking button rewording * docs(35/km/overview) reword workspaces * fix(35): Add index.md * fix(35): Update Admin API Nav (#244) * fix(35): Update Admin API Nav * feat(docs): 35 Index Page Init (#246) * Docs/35 dev portal config (#247) * docs(dev-portal): Auth types * Docs/35 dev portal config (#248) * add warning to basic auth * add workspaces * docs(35): Audit Log (#249) * docs(35): Vitals (#239) * docs(35): Dev Portal Networking Ref (#243) * docs(35): Property Reference (#251) * docs(35/manager) Kong Manager TD-121 (#245) For RC only * docs(35)/dev-portal (#236) * Docs/35 temp plugins (#252) * Revert "docs(35)/dev-portal (#236)" (#253) This reverts commit 0d9c2afad73734443ea73d367c15ef0da06e5c87. * Docs/35 dev portal temp (#255) * Docs/getting started temp (#257) * docs(35/prop-ref) correct name of prop * docs(35) Admin API (#258) * docs(35) administration (#259) * docs(35) remove ad from nav * docs(35) update admin * docs(35) reposition nav (#260) * docs(35) navigation improvements and fixes (#261) * docs(35) refine getting started (#262) * docs(35/admin) update reference docs (#263) * alter nav for rc (#264) * docs(35/km/auth/oidc) close bracket Thank you, @Jlawlzz . * docs(35/admin-api) add examples and corrections (#265) * fix(35) add items to navigation (#266) * fix(35/nav) remove typo in nav * docs(35/admin/example) MVP walkthrough (#267) * docs(35) start securing km section * docs(35/getting-started) feedback corrections * docs(35/admins/ref) add missing attributes (#269) * docs(35/*) provide security documentation (#270) * docs(35/km/oidc) improve OIDC (#271) * docs(35/start) add a note that only one super admin may be seeded * docs(35) add warning about samesite (#273) * docs(35/admins/ref) add generate_register_url description INTF-1506 (#272) Review in staging. * docs(35/plugin/session) add session doc (#275) * fix(35/plugin/session) fix template type * docs(35/getting-started) improve getting started intro (#274) * docs(ldap-auth-advanced) change property name from ssl to ldaps (#268) * docs(35/admin-api) update workspaces and rbac responses (#276) * docs(35/rbac/api) update endpoint permission responses * docs(35/rbac) permissions endpoints update * docs(index): Update index grid (#278) * docs(index): Update index grid * docs(docker): Update installation commands (#277) * docs(docker): Update installation commands * docs(35): Add plugin redirects (#250) * docs(35): Add plugin redirects * Docs/35 plugins (#280) * add redirects for jwt and rbh * init dev portal files * docs(35/*) session config and disclaimer (#283) * Adds details to session configuration * All places that suggest setting `enforce_rbac = on` now mention `admin_gui_session_conf` * Adds a disclaimer to any example pertaining to `secret`, `cookie_secure`, and `cookie_samesite` * All entry points (i.e. places that suggest setting `admin_gui_session_conf`) link to Kong Manager Session doc, which in turn links to Session Plugin after distinguishing the 2 * Clear statement that Session Plugin is required with any auth type * General stylistic cleanup around the Session page titles * docs(getting-started): Add grid overview (#282) * hotfix(35/session) fix yml format * add managing developers * update nav for internal preview * docs(vault-auth) add 0.1-x vault-auth docs (#216) * docs(vault-auth) add 0.1-x vault-auth docs * add dev portal docs * add overview to getting started * docs(35/km/ws) add note about admins without roles having "access" - EBB 90 (#281) * docs(35/nav) remove install overview * docs(35/nav) move down overview to distinct section * docs(35/nav) flatten nav for upgrades * docs(35/*) add migration guide * docs(35/nav) remove aws guide link until update is ready * hotfix(35/migrations) fix link * hotfix(35/migrations) fix links * docs(35/migrations) style the 'important' block * docs(35/migrations) make external links open new windows * docs(35/amazon-linux) fix migrations option * docs(35/docker) fix migrations option * docs(35/install) hide unused guides * docs(35/*) fix config link * fix(35/start) fix link * fix(35/start) fix link * fix(35/*) getting started links * docs(35/*) add security sec * dev portal updates * Chore/public merge (#286) - merge public repo * fix merge conflicts * merge public repo * Release/0.35 3 (#294) * docs(rate-limiting-advanced) add configuration parameter for redis cluster * write(35/km) how to reset password and rbac token (#287) * write(35/km) how to reset password and rbac token * change hard links to header links * fix bold formatted words * fix list numbering * change hard links to dynamic * add page to navigation * Update app/enterprise/0.35-x/kong-manager/reset-password.md * Update app/enterprise/0.35-x/kong-manager/reset-password.md Co-Authored-By: levi * Update app/enterprise/0.35-x/kong-manager/reset-password.md * docs(enterprise/migrations) migrate-apis CLI guide (#289) * chore(properties) add description fro db_cache_warmup_entities configuration (#290) * chore(changelog) add 0.35-1 and 0.35-3 to changelog for this release (#291) * chore(changelog) add 0.35-1 and 0.35-3 to changelog for this release * apply suggestions from code review * Add cli.md to enterprise doc tree (#292) * chore(cli) duplicate core cli doc and add new enterprise migrations commands * chore(nav) update nav to pick up new cli file * copy updates * changelog formatting Adds references to API migration guide to 0.35 migration guide * remove extra line * Add Upstream TLS to Hub (#295) * Add Upstream TLS to Hub * Add to nav * Clearer explanation for known issue * Delete adding-your-api.md * Delete adding-your-api.md * Delete best-practices.md * Delete index.md * Delete disabling-auth.md * Delete aws-cloudfront.md * Delete index.md * Delete admins.md * Delete quickstart.md * Delete google-cloud.md * Delete route-by-headers.md * Delete understanding-page-routing.md * Update macos.md * Update autodoc-admin-api/run.lua * Update autodoc-admin-api/run.lua * Delete package-lock.json * fix package-lock * package-lock * docs(cli-ref) fix link to conf ref (#1412) Updates link to Enterprise-version; currently 404s. * fix cli link typo * Docs/35 install ubuntu (#1396) * init ubuntu 35 doc * doc(installation): Add 0.35 Ubuntu doc * Update app/enterprise/0.35-x/deployment/installation/ubuntu.md * Update acl/index.md (#1411) declarative config for acls expects array * fix egregious broken links while at it * package log merge conflicts * 0.36 Release (#297) * Dup 35 to 36 * docks(plugins/request-validator) guide for new configs (#301) * docks(plugins/request-validator) guide for new configs * docs(mtls-auth) initial documentation (#285) * docs(mtls-auth): documentation * docs(rate-limiting-advanced) add 0.36 changes (#300) * docs(rate-limiting-advanced) add 0.36 changes - Add global rate limits by service. If plugin is applied globally, it will have a different counter per service, all with the same rate limit. If plugin is applied per service, then it can be configured on each service. - Add rate limits by arbitrary headers. The user defines a `config.identifier.header` identifier and also a `config.header_name` name to set up rate limiting by any given header name. * 0.36 OAuth2 Introspection Plugin Update (#299) * 0.36 updates * implement gszr's suggestion * Docs/0.36 changelog (#298) * 0.36 Changelog * update migrations CLI guide (#302) - change 0.34 to 0.35 * update plugins for 0.36 (#303) * update plugins for 0.36 * update migration guide link * remove migration guide links * Chore/public merge (#305) - merge public repo * Update changelog.md * Remove duplicate parameter (#1428) * Remove duplicate parameter * Update main nav verbiage from Hub to Plugins * Update based on outcome of recent A/B test * algolia test * docs(1.x.x/upgrading) fix copy-n-paste error from previous version (#1435) * docs(1.x.x/upgrading) fix copy-n-paste error from previous version * Update app/1.1.x/upgrading.md * algolia ee index * docs(36) update migrations guide * docs(changelog) update 36 changes * docs(1.1.x) update upgrading.md file for Kong 1.1 This change basically involves replacing most of the text on this page with the relevant section in https://github.com/Kong/kong/blob/master/UPGRADE.md. There are two deviations from that: * Modified some header levels * The section `Upgrade Path for Patch Releases` did not exist in the `UPGRADE.md` document - I left that part, since there's a 1.1.0 release and a 1.1.1 release. * docs(1.2.x) update upgrading.md file for Kong 1.2 This change basically involves replacing most of the text on this page with the relevant section in https://github.com/Kong/kong/blob/master/UPGRADE.md. There are two major deviations from that file: * I changed several header levels * The `Upgrade Path for Patch Releases` section does not exist in UPGRADE.md, but I have left it here. * update 0.35 CLI entity migration guide (#1429) * update 0.35 CLI entity migration guide * Update app/enterprise/0.35-x/deployment/migrate-apis-cli.md * fix broken link (#1441) * Update dependency rouge to v3.8.0 (#1374) * Add EE compatibility (#1439) * add missing images (#1443) * Tag Response Transformer Advanced as Enterprise Plugin (#1438) * Remove duplicate parameter Closes Issue #1422 * add newline * Change to Enterprise Plugin * update 0.35 * add reference folder (#1440) * style(*) remove enterprise header styling (#1445) * Chore/merge private repo (#1446) - upstream tls * docs(oidc) update from APIs to Services & Routes (#1404) * docs(oidc) update from APIs to Services / Routes * remove leftover closing bracket * make the step title less threatening * fix indentation and add closing bracket to sample * clarify sentence about redirection to URI * fix case typo * apply services/routes to previous versions * Update Canary Release Plugin docs (#1444) * add missing params * fix config typos * Update usage * add newline * add newline * updated old "api" based docs to "service/route" based (#1447) * updated old "api" based docs to "service/route" based * additional update * SG/style updates * chore(*) update release metadata for 1.2.2 (#1450) * docs(36-ee/1.2-ce) copy core material (#1455) * copy over unique 36 files * remove leftover reference to db-less * move configuration loading to prop ref * add guides to nav * admin api merge * remove core upgrade guide * remove unneeded note * redirect to prop ref * change link to ent version in oidc * replace core with enterprise path * replace core with enterprise path * change config to prop ref link * fix hub 404 * repeat corrections from 0.35 * docs(35-ee/1.0-ce) copy core material (#1454) * copy over files from 1.0 * move configuration loading section * add new navigation * change links to enterprise version * remove trailing space * provide base links * fix broken nav link * fix similar issues to 34 * fix links * add mention of enterprise * remove reference to core guide * docs(34-ee/13-ce) copy core material (#1453) * add enterprise cluster ref * add enterprise config ref * link dev portal to enterprise guide instead * new navigation * add core admin api * add auth reference * add cli reference * update links in clustering * update links in deployment * add health checks circuit breakers * update links in architecture patterns * add loadbalancing and netwroking * update links in oidc idp guides * add configuration loading section * add proxy and secure admin api pages * update link to prop ref * update links in getting started guides * update links in getting started guides * update link in amazon linux guide * update link in kong manager getting started * add lua reference * add plugin development * update links in ee-exclusive admin api ref * fix links * ensure Enterprise / EE is mentioned * Update .travis.yml (#1459) * docs(enterprise/*) fix typo on deployment page (#1462) * Update index.md * Update index.md * Yolo. * docs(1.3.x) add 1.3.0 docs (#1415) * docs(1.3.x) add 1.3.x pages as copies of 1.2.x * chore(1.3.x) update supported kong versions in plugins * docs(*) add description to admin api related dao schema parameters Describes following properties: - `generate_admin_api` - `admin_api_name` - `admin_api_nested_name` Co-Authored-By: Enrique García Cota * docs(1.3.x) document Route.headers function in proxying * docs(grpc) add grpc/grpcs to protocols in plugins To all of the plugins that support gRPC in Kong 1.3.0. * docs(getting-started) add grpc guide * docs(proxy) update proxy guide - Add grpc - Describe subsystems routing attributes - Add section for `sources`, `destinations`, and `snis` * docs(proxy) add more description text for SNI matcher in Route entity (#1442) Co-Authored-By: Guilherme Salazar * docs(1.3.x) add upgrading.md instructions for 1.3.x (#1437) Most changes from this commit are a straight replacement of the text using https://github.com/Kong/kong/blob/next/UPGRADE.md . There are two notable exceptions: * Header levels have been changed * The `Upgrade Path for Patch Releases` section does not exist in Kong's `UPGRADE.md` file. * docs(key-auth) remove the underscore in key name restriction from doc because it no longer applies * docs(pdk) update PDK docs for 1.3.0 * docs(1.3.0) refresh auto-generated Admin API docs * docs(1.3.0) refresh auto-generated CLI docs * docs(1.3.0) refresh auto-generated config file docs * chore(1.3.0) add entry in kong_versions.yml * fix(yml-version) add hyphen * feat(install) prepare for multi-arch releases (#1427) * Update changelog.md (#1458) * Feat/redirect broken urls (#1463) * update redirects * adding redirects - redirect broken/404’d URLs - create files where necessary to utilize redirect_to * docs(oidc) Update Dev Portal OIDC configuration and text (#1466) * docs(oidc) Update Dev Portal OIDC configuration and text * Update app/enterprise/0.35-x/developer-portal/configuration/authentication/oidc.md Co-Authored-By: Aron Eidelman * Update app/enterprise/0.35-x/developer-portal/configuration/authentication/oidc.md Co-Authored-By: Aron Eidelman * Update app/enterprise/0.35-x/developer-portal/configuration/authentication/oidc.md Co-Authored-By: Aron Eidelman * Update app/enterprise/0.36-x/developer-portal/configuration/authentication/oidc.md Co-Authored-By: Aron Eidelman * Update app/enterprise/0.36-x/developer-portal/configuration/authentication/oidc.md Co-Authored-By: Aron Eidelman * Update app/enterprise/0.36-x/developer-portal/configuration/authentication/oidc.md Co-Authored-By: Aron Eidelman * chore(ee/*) remove leftover front matter (#1471) * chore(ee/*) remove leftover frontmatter * Update index.md * Add Certificate Authority documenation (#1467) * docs(hub) add CA certificate creation to mTLS docs Add instructions on creating CA certificates to the mTLS plugin documentation, as creating CA certificates is required to use mTLS. * docs(admin) add CAs to Admin API Add Certificate Authorities to the admin API documentation. No equivalent for core as mTLS (the only current use case for Certificate Authorities) is not available in core. Additionally fix a rendering error in the 0.35 document. * fix(admin) remove extra admin API document. app/enterprise/0.35-x/admin-api.md appears to have been superseded by app/enterprise/0.35-x/admin-api/index.md. Later versions' doc trees only have the latter variant. Deleting it as such. * fix(admin) remove accidentally repeated word * docs(oidc) add Okta example (#1464) * docs(oidc) add Okta example * docs(oidc) add link to Kong Manager Plugin * docs(oidc) remove duplicate file and cleanup * docs(oidc) fix spelling and grammar for Okta * docs(oidc) use sub for Okta consumer_claim Change the consumer_claim from oid to sub for Okta. The original source for this doc was the Azure guide, but Azure is the odd IDP out whose sub claim values can't easily be used with our OIDC implementation, since there's no way to know the correct value in advance of a sign-in attempt. * docs(oidc) add Azure AD example (#1460) * docs(oidc) add Azure AD example * fix(oidc) add missing "not" to Azure AD docs * docs(oidc) link to Manager plugin instructions * fix(oidc) restore Azure v2 issuer URL example * Feat/redirection continued (#1465) * update redirects * adding redirects - redirect broken/404’d URLs - create files where necessary to utilize redirect_to * updaet redirects * Update known issues information - FTI-821 (#1448) * Update known issues information Remove limitation around bundles and add known issue for PATCHing trusted_certificates. * chore(*) make grammatical fix * Update app/_hub/kong-inc/upstream-tls/index.md Co-Authored-By: levi * Update dependency redcarpet to v3.5.0 (#1426) * Fix/redirect fix (#1472) * adding redirects - redirect broken/404’d URLs - create files where necessary to utilize redirect_to * Update a handful of still broken redirects * 7 total redirects updated to reflect urls provided by Ahmad * remove broken API reference redirect * fix early closed front matter * fix(passwords) use anchor links for page sections (#1474) * fix(passwords) use anchor links for page sections Fix Kong Manager password/token reset instructions to point to appropriate anchors within the page, rather than non-existent off-page links. * apply same fix to 0.35 docs * fix(proxy) describe actual router rule order (#1473) Fix proxy router rule evaluation order documentation for newer versions. The router has evaluated regex path rules before prefix path rules for some time, and documentation has always stated the reverse. This applies to older versions also, but has not been updated there for the sake of time. Add some additional example information for route shadowing. Correct broken anchor link. Made some minor phrasing changes. * Update portal property reference (#1475) * Update portal property reference Add details for portal_email_verification * Update app/enterprise/0.36-x/property-reference.md Co-Authored-By: Aron Eidelman * docs(ee/changelog) merge 0.36-2 changelog * chore(merge) merge from private repo docs(workspaces) update PUT limitation (#312) * Update dependency del to v5 (#1387) * Update dependency gulp-load-plugins to v2 (#1388) * Update dependency lodash to v4.17.15 (#1407) * rollback renovate updates * docs(ke/changelog) (#1478) * remove links to 1.2.1 * format cve list * add core features from 1.1.0-1.2.1 * add config features from 1.1.0-1.2.1 * delete DB-less and DC mention from config feats * delete core link from config feats * add admin api features from 1.1.0-1.2.1 * add pdk features from 1.1.0-1.2.1 * add plugin features from 1.1.0-1.2.1 * add cli features from 1.1.0-1.2.1 * add core fixes from 1.1.0-1.2.1 * add admin api fixes from 1.1.0-1.2.1 * add plugins fixes from 1.1.0-1.2.1 * add cli fixes from 1.1.0-1.2.1 * format 0.36-1 and -2 * fix typo * remove references to declarative config * remove purifycss (#1480) * Update dependency gulp-if to v3 (#1408) * Update jekyll/jekyll Docker tag to v3.8.6 (#1409) * change sass variable to less * Update dependency rouge to v3.10.0 (#1468) * update gemfile * docs(oidc-okta) add Okta configuration steps and images (#1479) * docs(oidc-okta) add Okta configuration steps and images * Apply suggestions from code review Co-Authored-By: Aron Eidelman * remove redirect_from for local files * docs(oas-config) document oas-config Admin API endpoint (#1484) * docs(oas-config) document oas-config Admin API endpoint * docs(oas-config) alter messaging for current limitations * docs(oas-config) markdown for link (#1485) * docs(oas-config) markdown for link * Update app/enterprise/0.36-x/oasconfig.md Co-Authored-By: Aron Eidelman * docs(readme) fix-bundler-version (#1477) * docs(readme) fix-bundler-version * added upper version for bundler * docs(readme) fix-typo * Fixed a typo in the deploying section of README.md * chore(repo): Upgrades to gulp 4.0.0 (#1482) * chore(repo): Upgrades to gulp 4.0, removes yarn Updates all outdated npm packages besides bootstrap, removes yarn, and migrates gulpfile to 4.0.0 syntax * remove extra dev dependencies * docs(zipkin) add docs for include_credential config option (#1414) Tied to https://github.com/Kong/kong-plugin-zipkin/pull/37 * chore(deps): update dependency standard to v14.2.0 (#1470) * chore(deps): update dependency cloudflare to v2.6.0 (#1417) * docs(zipkin) add `default_service_name` configuration parameter to docs (#1451) The default service name can be used to override the unknown-service-name spans. * Update Kubernetes Documentation (#1486) * Update kubernetes.md * Update kubernetes.md * Update kubernetes.md * Update kubernetes.md * Update kubernetes.md * Update kubernetes.md * Update kubernetes.md * Update kubernetes.md * Update kubernetes.md * Fixes for PR Feedback * docs(ee/vitals) add docker link, note for exporter count and remove API rules (#1488) * docs(ee/vitals) add docker link, note for exporter count and remove API rules - Add the link of private fork StatsD exporter docker image - Add note to match statsd exporters count to Kong nodes - Remove API related mapping in sample rules * Update app/enterprise/0.36-x/admin-api/vitals/vitals-prometheus-strategy.md Co-Authored-By: Aron Eidelman * Readd --statsd.listen-unixgram='' * also add for 0.34 and 0.35 * ci(check links) check for broken links (#1342) * chore(ci) setup a link-checker to run via travis-ci * fix(ci) debug why this doesn't work on travis-ci * fix(ci) adjust travis-ci permissions * chore(ci) travis-c permissions * chore(dependency) add the broken link checker dependency * merge master * add broken link checker * Add check-link test to README * remove docker-test * Delete .env * update travis.yml * update travis.yml * remove check-link command * feat(jekyll): Speed up local builds (#1489) Creates dev only gulp tasks and config files to speed up local build and watch times * chore(deps): update dependency standard to v14.3.0 (#1487) * Update custom-entities.md (#1491) Correct Migration file example `postgres` * docs(1.3.x/admin-api) fix Routes header example (#1493) * Update custom-entities.md (#1490) * Update custom-entities.md Remove extra brackets and commas * Update custom-entities.md * Fix/gulp jekyll dev (#1494) * oidc template outline * add jekyll metadata file * Delete oidc.html * rewind oidc page * merge public repo --- .gitignore | 1 + .travis.yml | 24 +- Dockerfile | 13 +- Gemfile | 6 +- Makefile | 26 +- README.md | 15 +- algolia/config.json | 41 + app/.jekyll-metadata | Bin 0 -> 1821193 bytes app/0.10.x/configuration-reference.md | 3 + .../modules/kong.tools.responses/send.md | 3 + .../modules/modules/kong.tools.utils.html.md | 3 + .../modules/modules/spec.helpers.html.md | 3 + app/0.11.x/configuration.md | 1 + .../modules/kong.tools.responses.html | 429 +- .../modules/kong.tools.utils.html | 1 + .../modules/modules/kong.utils.tools.html.md | 3 + app/0.12.x/configuration.md | 62 +- .../modules/kong.tools.responses.html | 429 +- .../modules/kong.tools.responses/send.md | 3 + .../modules/modules/kong.tools.utils.html.md | 3 + app/0.13.x/configuration.md | 66 +- .../modules/kong.tools.responses.html | 429 +- .../modules/kong.tools.responses/send.md | 3 + app/0.14.x/configuration.md | 121 +- app/0.3.x/configuration.md | 43 +- app/0.3.x/getting-started/enabling-plugins.md | 5 +- .../modules/kong.tools.responses/send.md | 3 + .../modules/kong.tools.responses/send.md | 3 + .../modules/kong.dao.cassandra.base_dao.md | 3 + .../modules/kong.tools.responses/send.md | 3 + .../modules/kong.tools.responses/send.md | 3 + app/1.0.x/configuration.md | 1 + app/1.1.x/configuration.md | 1 + app/1.1.x/upgrading.md | 294 +- app/1.2.x/auth.md | 196 +- app/1.2.x/configuration.md | 2 + app/1.2.x/db-less-and-declarative-config.md | 106 +- .../getting-started/configuring-a-service.md | 5 +- app/1.2.x/getting-started/introduction.md | 4 +- app/1.2.x/getting-started/quickstart.md | 12 +- app/1.2.x/pdk/index.md | 102 +- .../plugin-development/custom-entities.md | 18 +- app/1.2.x/plugin-development/custom-logic.md | 114 +- app/1.2.x/plugin-development/distribution.md | 32 +- app/1.2.x/plugin-development/index.md | 6 +- app/1.2.x/proxy.md | 241 +- app/1.2.x/secure-admin-api.md | 4 +- app/1.2.x/upgrading.md | 299 +- app/1.3.x/admin-api.md | 3071 ++++++++++ app/1.3.x/auth.md | 215 + app/1.3.x/cli.md | 311 + app/1.3.x/clustering.md | 297 + app/1.3.x/configuration.md | 1446 +++++ app/1.3.x/db-less-admin-api.md | 1898 +++++++ app/1.3.x/db-less-and-declarative-config.md | 321 ++ app/1.3.x/getting-started/adding-consumers.md | 97 + .../configuring-a-grpc-service.md | 283 + .../getting-started/configuring-a-service.md | 137 + app/1.3.x/getting-started/enabling-plugins.md | 74 + app/1.3.x/getting-started/introduction.md | 31 + app/1.3.x/getting-started/quickstart.md | 80 + app/1.3.x/health-checks-circuit-breakers.md | 321 ++ app/1.3.x/index.md | 84 + app/1.3.x/loadbalancing.md | 374 ++ app/1.3.x/logging.md | 151 + app/1.3.x/network.md | 70 + app/1.3.x/pdk/index.md | 176 + app/1.3.x/pdk/kong.client.md | 262 + app/1.3.x/pdk/kong.ctx.md | 106 + app/1.3.x/pdk/kong.ip.md | 51 + app/1.3.x/pdk/kong.log.md | 261 + app/1.3.x/pdk/kong.nginx.md | 36 + app/1.3.x/pdk/kong.node.md | 105 + app/1.3.x/pdk/kong.request.md | 599 ++ app/1.3.x/pdk/kong.response.md | 474 ++ app/1.3.x/pdk/kong.router.md | 68 + app/1.3.x/pdk/kong.service.md | 131 + app/1.3.x/pdk/kong.service.request.md | 437 ++ app/1.3.x/pdk/kong.service.response.md | 132 + app/1.3.x/pdk/kong.table.md | 67 + .../access-the-datastore.md | 75 + app/1.3.x/plugin-development/admin-api.md | 174 + .../plugin-development/custom-entities.md | 680 +++ app/1.3.x/plugin-development/custom-logic.md | 303 + app/1.3.x/plugin-development/distribution.md | 306 + .../plugin-development/entities-cache.md | 351 ++ .../plugin-development/file-structure.md | 124 + app/1.3.x/plugin-development/index.md | 37 + .../plugin-configuration.md | 420 ++ app/1.3.x/plugin-development/tests.md | 108 + app/1.3.x/proxy.md | 1295 +++++ app/1.3.x/secure-admin-api.md | 159 + app/1.3.x/upgrading.md | 167 + app/_assets/stylesheets/header.less | 6 +- app/_assets/stylesheets/page.less | 4 - app/_data/docs_nav_1.3.x.yml | 360 ++ app/_data/docs_nav_ee_0.34-x.yml | 26 + app/_data/docs_nav_ee_0.35-x.yml | 59 +- app/_data/docs_nav_ee_0.36-x.yml | 62 +- app/_data/kong_versions.yml | 14 +- app/_hub/kong-inc/acl/index.md | 1 + app/_hub/kong-inc/aws-lambda/index.md | 1 + app/_hub/kong-inc/azure-functions/index.md | 1 + app/_hub/kong-inc/basic-auth/index.md | 1 + app/_hub/kong-inc/bot-detection/index.md | 1 + app/_hub/kong-inc/canary/0.31-x.md | 6 - app/_hub/kong-inc/canary/0.32-x.md | 6 - app/_hub/kong-inc/canary/0.33-x.md | 8 - app/_hub/kong-inc/canary/0.34-x.md | 8 - app/_hub/kong-inc/canary/0.35-x.md | 8 - app/_hub/kong-inc/canary/index.md | 114 +- app/_hub/kong-inc/correlation-id/index.md | 1 + app/_hub/kong-inc/cors/index.md | 1 + app/_hub/kong-inc/datadog/index.md | 1 + app/_hub/kong-inc/file-log/index.md | 3 +- app/_hub/kong-inc/hmac-auth/index.md | 1 + app/_hub/kong-inc/http-log/index.md | 3 +- app/_hub/kong-inc/ip-restriction/index.md | 1 + app/_hub/kong-inc/jwt/index.md | 1 + app/_hub/kong-inc/key-auth/index.md | 3 +- .../kubernetes-sidecar-injector/index.md | 3 + app/_hub/kong-inc/ldap-auth/index.md | 1 + app/_hub/kong-inc/loggly/index.md | 3 +- app/_hub/kong-inc/mtls-auth/index.md | 16 + app/_hub/kong-inc/oauth2/index.md | 1 + app/_hub/kong-inc/openid-connect/0.32-x.md | 351 +- app/_hub/kong-inc/openid-connect/0.33-x.md | 351 +- app/_hub/kong-inc/openid-connect/0.34-x.md | 348 +- app/_hub/kong-inc/openid-connect/0.35-x.md | 348 +- app/_hub/kong-inc/openid-connect/index.md | 348 +- app/_hub/kong-inc/prometheus/index.md | 3 +- app/_hub/kong-inc/proxy-cache/index.md | 1 + .../kong-inc/rate-limiting-advanced/0.35-x.md | 2 +- .../kong-inc/rate-limiting-advanced/index.md | 2 +- app/_hub/kong-inc/rate-limiting/index.md | 88 +- .../kong-inc/request-size-limiting/index.md | 1 + .../kong-inc/request-termination/index.md | 1 + .../kong-inc/request-transformer/index.md | 5 +- .../kong-inc/response-ratelimiting/index.md | 1 + .../response-transformer-advanced/0.35-x.md | 1 + .../response-transformer-advanced/index.md | 1 + .../kong-inc/response-transformer/index.md | 1 + .../kong-inc/serverless-functions/index.md | 1 + app/_hub/kong-inc/session/index.md | 342 +- app/_hub/kong-inc/statsd/index.md | 3 +- app/_hub/kong-inc/syslog/index.md | 3 +- app/_hub/kong-inc/tcp-log/index.md | 3 +- app/_hub/kong-inc/udp-log/index.md | 3 +- app/_hub/kong-inc/upstream-tls/index.md | 2 +- app/_hub/kong-inc/vault-auth/index.md | 2 +- app/_hub/kong-inc/zipkin/index.md | 47 +- app/_includes/nav.html | 4 +- app/_layouts/changelog.html | 2 +- app/_layouts/docs.html | 30 +- app/_layouts/reference.html | 31 + app/careers/index.md | 3 + app/enterprise/0.31-x/developer-portal/faq.md | 13 +- app/enterprise/0.32-x/developer-portal/faq.md | 15 +- .../0.32-x/developer-portal/overview.md | 13 +- .../getting-started/enabling-plugins.md | 1 + app/enterprise/0.33-x/admin-gui/overview.md | 10 +- .../configuration/getting-started.md | 10 +- app/enterprise/0.33-x/developer-portal/faq.md | 1 + .../0.33-x/developer-portal/overview.md | 13 +- .../getting-started/enabling-plugins.md | 3 + app/enterprise/0.33-x/installation/docker.md | 111 +- .../0.33-x/kong-architecture-overview.md | 2 +- app/enterprise/0.33-x/rbac/overview.md | 30 +- app/enterprise/0.34-x/admin-api-audit-log.md | 154 +- app/enterprise/0.34-x/admin-api.md | 2595 +++++++++ app/enterprise/0.34-x/auth.md | 215 + app/enterprise/0.34-x/cli.md | 216 + app/enterprise/0.34-x/clustering.md | 296 + app/enterprise/0.34-x/configuration.md | 959 ++++ app/enterprise/0.34-x/deployment-guide.md | 168 +- .../configuration/getting-started.md | 20 +- .../developer-portal/configuration/smtp.md | 13 +- .../developers/developer-access.md | 2 +- .../0.34-x/developer-portal/glossary.md | 2 +- .../management/file-management.md | 280 +- .../getting-started/accessing-your-license.md | 2 +- .../getting-started/adding-consumers.md | 18 +- .../0.34-x/getting-started/adding-your-api.md | 4 +- .../getting-started/configuring-a-service.md | 4 +- .../getting-started/enabling-plugins.md | 10 +- .../0.34-x/getting-started/quickstart.md | 8 +- .../0.34-x/health-checks-circuit-breakers.md | 294 + .../0.34-x/installation/amazon-linux.md | 2 +- .../0.34-x/kong-architecture-patterns.md | 8 +- .../configuration/getting-started.md | 6 +- .../kong-manager/configuration/networking.md | 66 +- .../managing-admins.md | 112 +- .../organization-management/workspaces.md | 42 +- app/enterprise/0.34-x/loadbalancing.md | 367 ++ .../0.34-x/lua-reference/index.html | 101 + .../lua-reference/modules/kong.dao.html | 427 ++ .../kong.plugins.basic-auth.crypto.html | 109 + .../modules/kong.plugins.galileo.alf.html | 133 + .../modules/kong.plugins.galileo.buffer.html | 102 + .../modules/kong.plugins.jwt.jwt_parser.html | 184 + .../modules/kong.tools.responses.html | 237 + .../modules/kong.tools.timestamp.html | 71 + .../modules/kong.tools.utils.html | 822 +++ .../lua-reference/modules/spec.helpers.html | 813 +++ app/enterprise/0.34-x/network.md | 46 + app/enterprise/0.34-x/oidc-auth0.md | 2 +- app/enterprise/0.34-x/oidc-google.md | 4 +- .../access-the-datastore.md | 67 + .../0.34-x/plugin-development/admin-api.md | 102 + .../plugin-development/custom-entities.md | 177 + .../0.34-x/plugin-development/custom-logic.md | 243 + .../0.34-x/plugin-development/distribution.md | 286 + .../plugin-development/entities-cache.md | 288 + .../plugin-development/file-structure.md | 107 + .../0.34-x/plugin-development/index.md | 28 + .../plugin-configuration.md | 212 + .../0.34-x/plugin-development/tests.md | 96 + app/enterprise/0.34-x/property-reference.md | 271 +- app/enterprise/0.34-x/proxy.md | 1075 ++++ app/enterprise/0.34-x/rate-limiting.md | 138 +- app/enterprise/0.34-x/rbac/admin-api.md | 2 +- app/enterprise/0.34-x/rbac/overview.md | 35 +- app/enterprise/0.34-x/secure-admin-api.md | 159 + .../0.34-x/vitals-prometheus-strategy.md | 10 +- app/enterprise/0.34-x/workspaces/admin-api.md | 2 +- app/enterprise/0.34-x/workspaces/examples.md | 2 +- app/enterprise/0.35-x/admin-api/index.md | 2742 ++++++++- .../0.35-x/admin-api/rbac/reference.md | 292 +- .../0.35-x/admin-api/vitals/index.md | 30 +- .../vitals/vitals-prometheus-strategy.md | 14 +- .../0.35-x/admin-api/workspaces/examples.md | 2 +- .../0.35-x/admin-api/workspaces/reference.md | 75 +- app/enterprise/0.35-x/auth.md | 215 + app/enterprise/0.35-x/clustering.md | 297 + .../0.35-x/deployment/access-license.md | 2 +- .../deployment/installation/amazon-linux.md | 2 +- .../0.35-x/deployment/installation/centos.md | 2 +- .../deployment/installation/overview.md | 2 + .../0.35-x/deployment/installation/ubuntu.md | 2 +- .../0.35-x/deployment/migrate-apis-cli.md | 14 +- .../configuration/authentication/oidc.md | 34 +- .../developer-portal/configuration/index.md | 2 + .../0.35-x/developer-portal/introduction.md | 7 +- .../0.35-x/getting-started/add-consumer.md | 4 +- .../0.35-x/getting-started/add-service.md | 13 +- .../0.35-x/getting-started/enable-plugin.md | 9 +- .../0.35-x/getting-started/index.md | 4 +- .../0.35-x/getting-started/start-kong.md | 2 +- .../0.35-x/health-checks-circuit-breakers.md | 321 ++ app/enterprise/0.35-x/index.md | 3 +- .../0.35-x/kong-manager/reset-password.md | 8 +- app/enterprise/0.35-x/loadbalancing.md | 374 ++ app/enterprise/0.35-x/logging.md | 151 + app/enterprise/0.35-x/network.md | 46 + app/enterprise/0.35-x/pdk/index.md | 176 + app/enterprise/0.35-x/pdk/kong.client.md | 232 + app/enterprise/0.35-x/pdk/kong.ctx.md | 106 + app/enterprise/0.35-x/pdk/kong.ip.md | 51 + app/enterprise/0.35-x/pdk/kong.log.md | 261 + app/enterprise/0.35-x/pdk/kong.node.md | 29 + app/enterprise/0.35-x/pdk/kong.request.md | 599 ++ app/enterprise/0.35-x/pdk/kong.response.md | 469 ++ app/enterprise/0.35-x/pdk/kong.router.md | 68 + app/enterprise/0.35-x/pdk/kong.service.md | 89 + .../0.35-x/pdk/kong.service.request.md | 437 ++ .../0.35-x/pdk/kong.service.response.md | 132 + app/enterprise/0.35-x/pdk/kong.table.md | 67 + .../access-the-datastore.md | 75 + .../0.35-x/plugin-development/admin-api.md | 174 + .../plugin-development/custom-entities.md | 645 +++ .../0.35-x/plugin-development/custom-logic.md | 302 + .../0.35-x/plugin-development/distribution.md | 306 + .../plugin-development/entities-cache.md | 349 ++ .../plugin-development/file-structure.md | 124 + .../0.35-x/plugin-development/index.md | 37 + .../plugin-configuration.md | 420 ++ .../0.35-x/plugin-development/tests.md | 108 + app/enterprise/0.35-x/plugins/index.md | 3 + app/enterprise/0.35-x/plugins/oidc-azuread.md | 88 + app/enterprise/0.35-x/plugins/oidc-google.md | 2 +- app/enterprise/0.35-x/plugins/oidc-okta.md | 108 + .../0.35-x/plugins/statsd.rules.yaml | 36 - app/enterprise/0.35-x/property-reference.md | 81 +- app/enterprise/0.35-x/proxy.md | 1116 ++++ app/enterprise/0.35-x/secure-admin-api.md | 159 + app/enterprise/0.36-x/admin-api/index.md | 2965 +++++++++- .../0.36-x/admin-api/rbac/reference.md | 292 +- .../vitals/vitals-prometheus-strategy.md | 14 +- .../0.36-x/admin-api/workspaces/examples.md | 2 +- .../0.36-x/admin-api/workspaces/reference.md | 79 +- app/enterprise/0.36-x/auth.md | 215 + app/enterprise/0.36-x/clustering.md | 297 + .../0.36-x/deployment/installation/centos.md | 6 +- .../0.36-x/deployment/installation/ubuntu.md | 6 +- .../0.36-x/deployment/migrations.md | 1 - .../configuration/authentication/oidc.md | 34 +- .../developer-portal/configuration/index.md | 2 + .../0.36-x/getting-started/add-consumer.md | 4 +- .../0.36-x/getting-started/add-service.md | 11 +- .../0.36-x/getting-started/enable-plugin.md | 9 +- .../0.36-x/getting-started/index.md | 4 +- .../0.36-x/getting-started/start-kong.md | 2 +- .../0.36-x/health-checks-circuit-breakers.md | 321 ++ app/enterprise/0.36-x/index.md | 2 +- .../0.36-x/kong-manager/reset-password.md | 39 +- app/enterprise/0.36-x/loadbalancing.md | 374 ++ app/enterprise/0.36-x/logging.md | 151 + app/enterprise/0.36-x/network.md | 70 + app/enterprise/0.36-x/oasconfig.md | 353 ++ app/enterprise/0.36-x/pdk/index.md | 176 + app/enterprise/0.36-x/pdk/kong.client.md | 286 + app/enterprise/0.36-x/pdk/kong.ctx.md | 106 + app/enterprise/0.36-x/pdk/kong.ip.md | 51 + app/enterprise/0.36-x/pdk/kong.log.md | 261 + app/enterprise/0.36-x/pdk/kong.node.md | 29 + app/enterprise/0.36-x/pdk/kong.request.md | 599 ++ app/enterprise/0.36-x/pdk/kong.response.md | 469 ++ app/enterprise/0.36-x/pdk/kong.router.md | 68 + app/enterprise/0.36-x/pdk/kong.service.md | 89 + .../0.36-x/pdk/kong.service.request.md | 437 ++ .../0.36-x/pdk/kong.service.response.md | 132 + app/enterprise/0.36-x/pdk/kong.table.md | 67 + .../access-the-datastore.md | 75 + .../0.36-x/plugin-development/admin-api.md | 174 + .../plugin-development/custom-entities.md | 645 +++ .../0.36-x/plugin-development/custom-logic.md | 303 + .../0.36-x/plugin-development/distribution.md | 306 + .../plugin-development/entities-cache.md | 349 ++ .../plugin-development/file-structure.md | 124 + .../0.36-x/plugin-development/index.md | 37 + .../plugin-configuration.md | 420 ++ .../0.36-x/plugin-development/tests.md | 108 + app/enterprise/0.36-x/plugins/index.md | 3 + app/enterprise/0.36-x/plugins/oidc-azuread.md | 88 + app/enterprise/0.36-x/plugins/oidc-google.md | 2 +- app/enterprise/0.36-x/plugins/oidc-okta.md | 108 + .../0.36-x/plugins/statsd.rules.yaml | 36 - app/enterprise/0.36-x/property-reference.md | 92 +- app/enterprise/0.36-x/proxy.md | 1130 ++++ app/enterprise/0.36-x/secure-admin-api.md | 159 + app/enterprise/changelog.md | 252 +- app/enterprise/references/index.md | 13 + app/enterprise/references/rate-limiting.md | 138 + app/install/aws-linux.md | 2 +- app/install/centos.md | 4 +- app/install/debian.md | 6 +- app/install/kubernetes.md | 50 +- app/install/redhat.md | 4 +- app/install/ubuntu.md | 10 +- docker-compose.yml | 2 +- entrypoint.sh | 2 - gulpfile.js | 242 +- jekyll-dev.yml | 110 + package-lock.json | 5029 +++++++++-------- package.json | 24 +- 355 files changed, 57613 insertions(+), 7018 deletions(-) create mode 100644 algolia/config.json create mode 100644 app/.jekyll-metadata create mode 100644 app/0.10.x/configuration-reference.md create mode 100644 app/0.10.x/lua-reference/modules/kong.tools.responses/send.md create mode 100644 app/0.10.x/lua-reference/modules/modules/kong.tools.utils.html.md create mode 100644 app/0.10.x/lua-reference/modules/modules/spec.helpers.html.md create mode 100644 app/0.11.x/lua-reference/modules/modules/kong.utils.tools.html.md create mode 100644 app/0.12.x/lua-reference/modules/kong.tools.responses/send.md create mode 100644 app/0.12.x/lua-reference/modules/modules/kong.tools.utils.html.md create mode 100644 app/0.13.x/lua-reference/modules/kong.tools.responses/send.md create mode 100644 app/0.6.x/lua-reference/modules/kong.tools.responses/send.md create mode 100644 app/0.7.x/lua-reference/modules/kong.tools.responses/send.md create mode 100644 app/0.8.x/lua-reference/modules/kong.dao.cassandra.base_dao.md create mode 100644 app/0.8.x/lua-reference/modules/kong.tools.responses/send.md create mode 100644 app/0.9.x/lua-reference/modules/kong.tools.responses/send.md create mode 100644 app/1.3.x/admin-api.md create mode 100644 app/1.3.x/auth.md create mode 100644 app/1.3.x/cli.md create mode 100644 app/1.3.x/clustering.md create mode 100644 app/1.3.x/configuration.md create mode 100644 app/1.3.x/db-less-admin-api.md create mode 100644 app/1.3.x/db-less-and-declarative-config.md create mode 100644 app/1.3.x/getting-started/adding-consumers.md create mode 100644 app/1.3.x/getting-started/configuring-a-grpc-service.md create mode 100644 app/1.3.x/getting-started/configuring-a-service.md create mode 100644 app/1.3.x/getting-started/enabling-plugins.md create mode 100644 app/1.3.x/getting-started/introduction.md create mode 100644 app/1.3.x/getting-started/quickstart.md create mode 100644 app/1.3.x/health-checks-circuit-breakers.md create mode 100644 app/1.3.x/index.md create mode 100644 app/1.3.x/loadbalancing.md create mode 100644 app/1.3.x/logging.md create mode 100644 app/1.3.x/network.md create mode 100644 app/1.3.x/pdk/index.md create mode 100644 app/1.3.x/pdk/kong.client.md create mode 100644 app/1.3.x/pdk/kong.ctx.md create mode 100644 app/1.3.x/pdk/kong.ip.md create mode 100644 app/1.3.x/pdk/kong.log.md create mode 100644 app/1.3.x/pdk/kong.nginx.md create mode 100644 app/1.3.x/pdk/kong.node.md create mode 100644 app/1.3.x/pdk/kong.request.md create mode 100644 app/1.3.x/pdk/kong.response.md create mode 100644 app/1.3.x/pdk/kong.router.md create mode 100644 app/1.3.x/pdk/kong.service.md create mode 100644 app/1.3.x/pdk/kong.service.request.md create mode 100644 app/1.3.x/pdk/kong.service.response.md create mode 100644 app/1.3.x/pdk/kong.table.md create mode 100644 app/1.3.x/plugin-development/access-the-datastore.md create mode 100644 app/1.3.x/plugin-development/admin-api.md create mode 100644 app/1.3.x/plugin-development/custom-entities.md create mode 100644 app/1.3.x/plugin-development/custom-logic.md create mode 100644 app/1.3.x/plugin-development/distribution.md create mode 100644 app/1.3.x/plugin-development/entities-cache.md create mode 100644 app/1.3.x/plugin-development/file-structure.md create mode 100644 app/1.3.x/plugin-development/index.md create mode 100644 app/1.3.x/plugin-development/plugin-configuration.md create mode 100644 app/1.3.x/plugin-development/tests.md create mode 100644 app/1.3.x/proxy.md create mode 100644 app/1.3.x/secure-admin-api.md create mode 100644 app/1.3.x/upgrading.md create mode 100644 app/_data/docs_nav_1.3.x.yml create mode 100644 app/_layouts/reference.html create mode 100644 app/careers/index.md create mode 100644 app/enterprise/0.34-x/admin-api.md create mode 100644 app/enterprise/0.34-x/auth.md create mode 100644 app/enterprise/0.34-x/cli.md create mode 100644 app/enterprise/0.34-x/clustering.md create mode 100644 app/enterprise/0.34-x/configuration.md create mode 100644 app/enterprise/0.34-x/health-checks-circuit-breakers.md create mode 100644 app/enterprise/0.34-x/loadbalancing.md create mode 100644 app/enterprise/0.34-x/lua-reference/index.html create mode 100644 app/enterprise/0.34-x/lua-reference/modules/kong.dao.html create mode 100644 app/enterprise/0.34-x/lua-reference/modules/kong.plugins.basic-auth.crypto.html create mode 100644 app/enterprise/0.34-x/lua-reference/modules/kong.plugins.galileo.alf.html create mode 100644 app/enterprise/0.34-x/lua-reference/modules/kong.plugins.galileo.buffer.html create mode 100644 app/enterprise/0.34-x/lua-reference/modules/kong.plugins.jwt.jwt_parser.html create mode 100644 app/enterprise/0.34-x/lua-reference/modules/kong.tools.responses.html create mode 100644 app/enterprise/0.34-x/lua-reference/modules/kong.tools.timestamp.html create mode 100644 app/enterprise/0.34-x/lua-reference/modules/kong.tools.utils.html create mode 100644 app/enterprise/0.34-x/lua-reference/modules/spec.helpers.html create mode 100644 app/enterprise/0.34-x/network.md create mode 100644 app/enterprise/0.34-x/plugin-development/access-the-datastore.md create mode 100644 app/enterprise/0.34-x/plugin-development/admin-api.md create mode 100644 app/enterprise/0.34-x/plugin-development/custom-entities.md create mode 100644 app/enterprise/0.34-x/plugin-development/custom-logic.md create mode 100644 app/enterprise/0.34-x/plugin-development/distribution.md create mode 100644 app/enterprise/0.34-x/plugin-development/entities-cache.md create mode 100644 app/enterprise/0.34-x/plugin-development/file-structure.md create mode 100644 app/enterprise/0.34-x/plugin-development/index.md create mode 100644 app/enterprise/0.34-x/plugin-development/plugin-configuration.md create mode 100644 app/enterprise/0.34-x/plugin-development/tests.md create mode 100644 app/enterprise/0.34-x/proxy.md create mode 100644 app/enterprise/0.34-x/secure-admin-api.md create mode 100644 app/enterprise/0.35-x/auth.md create mode 100644 app/enterprise/0.35-x/clustering.md create mode 100644 app/enterprise/0.35-x/health-checks-circuit-breakers.md create mode 100644 app/enterprise/0.35-x/loadbalancing.md create mode 100644 app/enterprise/0.35-x/logging.md create mode 100644 app/enterprise/0.35-x/network.md create mode 100644 app/enterprise/0.35-x/pdk/index.md create mode 100644 app/enterprise/0.35-x/pdk/kong.client.md create mode 100644 app/enterprise/0.35-x/pdk/kong.ctx.md create mode 100644 app/enterprise/0.35-x/pdk/kong.ip.md create mode 100644 app/enterprise/0.35-x/pdk/kong.log.md create mode 100644 app/enterprise/0.35-x/pdk/kong.node.md create mode 100644 app/enterprise/0.35-x/pdk/kong.request.md create mode 100644 app/enterprise/0.35-x/pdk/kong.response.md create mode 100644 app/enterprise/0.35-x/pdk/kong.router.md create mode 100644 app/enterprise/0.35-x/pdk/kong.service.md create mode 100644 app/enterprise/0.35-x/pdk/kong.service.request.md create mode 100644 app/enterprise/0.35-x/pdk/kong.service.response.md create mode 100644 app/enterprise/0.35-x/pdk/kong.table.md create mode 100644 app/enterprise/0.35-x/plugin-development/access-the-datastore.md create mode 100644 app/enterprise/0.35-x/plugin-development/admin-api.md create mode 100644 app/enterprise/0.35-x/plugin-development/custom-entities.md create mode 100644 app/enterprise/0.35-x/plugin-development/custom-logic.md create mode 100644 app/enterprise/0.35-x/plugin-development/distribution.md create mode 100644 app/enterprise/0.35-x/plugin-development/entities-cache.md create mode 100644 app/enterprise/0.35-x/plugin-development/file-structure.md create mode 100644 app/enterprise/0.35-x/plugin-development/index.md create mode 100644 app/enterprise/0.35-x/plugin-development/plugin-configuration.md create mode 100644 app/enterprise/0.35-x/plugin-development/tests.md create mode 100644 app/enterprise/0.35-x/plugins/index.md create mode 100644 app/enterprise/0.35-x/plugins/oidc-azuread.md create mode 100644 app/enterprise/0.35-x/plugins/oidc-okta.md create mode 100644 app/enterprise/0.35-x/proxy.md create mode 100644 app/enterprise/0.35-x/secure-admin-api.md create mode 100644 app/enterprise/0.36-x/auth.md create mode 100644 app/enterprise/0.36-x/clustering.md create mode 100644 app/enterprise/0.36-x/health-checks-circuit-breakers.md create mode 100644 app/enterprise/0.36-x/loadbalancing.md create mode 100644 app/enterprise/0.36-x/logging.md create mode 100644 app/enterprise/0.36-x/network.md create mode 100644 app/enterprise/0.36-x/oasconfig.md create mode 100644 app/enterprise/0.36-x/pdk/index.md create mode 100644 app/enterprise/0.36-x/pdk/kong.client.md create mode 100644 app/enterprise/0.36-x/pdk/kong.ctx.md create mode 100644 app/enterprise/0.36-x/pdk/kong.ip.md create mode 100644 app/enterprise/0.36-x/pdk/kong.log.md create mode 100644 app/enterprise/0.36-x/pdk/kong.node.md create mode 100644 app/enterprise/0.36-x/pdk/kong.request.md create mode 100644 app/enterprise/0.36-x/pdk/kong.response.md create mode 100644 app/enterprise/0.36-x/pdk/kong.router.md create mode 100644 app/enterprise/0.36-x/pdk/kong.service.md create mode 100644 app/enterprise/0.36-x/pdk/kong.service.request.md create mode 100644 app/enterprise/0.36-x/pdk/kong.service.response.md create mode 100644 app/enterprise/0.36-x/pdk/kong.table.md create mode 100644 app/enterprise/0.36-x/plugin-development/access-the-datastore.md create mode 100644 app/enterprise/0.36-x/plugin-development/admin-api.md create mode 100644 app/enterprise/0.36-x/plugin-development/custom-entities.md create mode 100644 app/enterprise/0.36-x/plugin-development/custom-logic.md create mode 100644 app/enterprise/0.36-x/plugin-development/distribution.md create mode 100644 app/enterprise/0.36-x/plugin-development/entities-cache.md create mode 100644 app/enterprise/0.36-x/plugin-development/file-structure.md create mode 100644 app/enterprise/0.36-x/plugin-development/index.md create mode 100644 app/enterprise/0.36-x/plugin-development/plugin-configuration.md create mode 100644 app/enterprise/0.36-x/plugin-development/tests.md create mode 100644 app/enterprise/0.36-x/plugins/index.md create mode 100644 app/enterprise/0.36-x/plugins/oidc-azuread.md create mode 100644 app/enterprise/0.36-x/plugins/oidc-okta.md create mode 100644 app/enterprise/0.36-x/proxy.md create mode 100644 app/enterprise/0.36-x/secure-admin-api.md create mode 100644 app/enterprise/references/index.md create mode 100644 app/enterprise/references/rate-limiting.md create mode 100644 jekyll-dev.yml diff --git a/.gitignore b/.gitignore index da89ab4f2e18..04a085a770c4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .DS_Store +.env .che .vagrant .buildpath diff --git a/.travis.yml b/.travis.yml index 461ca64dfe08..7ae3ab5f7fe7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,22 +1,12 @@ -language: node_js -node_js: - - "8" - +dist: xenial sudo: false + +language: generic notifications: email: false -cache: - bundler: true - yarn: true - before_install: - - rvm install 2.3.3 - - npm install -g yarn -install: - - bundle install - - yarn -before_script: - - npm test -script: - - gulp build + - docker-compose build + - touch Gemfile.lock + - mkdir node_modules + - chmod -R 777 . diff --git a/Dockerfile b/Dockerfile index 22335c9b2bbc..03a1cde620cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,13 @@ # This should mirror the jekyll version in the Gemfile -FROM jekyll/jekyll:3.8.5 - -WORKDIR /srv/jekyll +FROM jekyll/jekyll:3.8.6 RUN apk add --update autoconf automake file build-base nasm musl libpng-dev zlib-dev -COPY entrypoint.sh /entrypoint.sh - -RUN npm install -g yarn && npm install -g gulp +WORKDIR /srv/jekyll +COPY Makefile /srv/jekyll +RUN make install-prerequisites RUN chmod -R 777 /usr/lib/node_modules \ - && chmod 777 /entrypoint.sh \ && usermod -a -G root jekyll -ENTRYPOINT ["/entrypoint.sh"] - EXPOSE 3000 3001 diff --git a/Gemfile b/Gemfile index c493bddede24..f750b48692d8 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source 'https://rubygems.org' -gem 'jekyll', '~> 3.8.5' +gem 'jekyll', '~> 3.8.6' gem 'jekyll-redirect-from' -gem 'redcarpet', '3.4.0' -gem 'rouge', '3.4.1' +gem 'redcarpet', '3.5.0' +gem 'rouge', '3.10.0' diff --git a/Makefile b/Makefile index c26d3f99b1ff..acebd16d0ba0 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,26 @@ +install-prerequisites: + npm install -g yarn + npm install -g gulp + +install: + npm install + bundle install + yarn --ignore-engines + yarn upgrade + +run: install + gulp + develop: - docker-compose up --build + docker-compose up + +test: install + npm test + +docker-test: + COMMAND="make test" docker-compose up + +check-links: + docker-compose up -d + while [ `curl -s -o /dev/null -w ''%{http_code}'' localhost:3000` != 200 ]; do echo "waiting"; docker-compose logs --tail=2 jekyll; sleep 20; done + docker-compose exec jekyll yarn blc http://localhost:3000 -efr --exclude careers --exclude hub diff --git a/README.md b/README.md index e71cb0e354be..8b2f5162fc30 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,19 @@ This repository is the source code for [Kong](https://github.com/Kong/kong)'s do make develop ``` +### Testing Links With Docker + +> +``` +make check-links +``` + ## Develop Locally Without Docker ### Prerequisites - [npm](https://www.npmjs.com/) -- [Bundler](https://bundler.io/) +- [Bundler](https://bundler.io/) (< 2.0.0) - [Ruby](https://www.ruby-lang.org) (>= 2.0, < 2.3) - [Python](https://www.python.org) (>= 2.7.X, < 3) @@ -35,7 +42,7 @@ npm start ## Deploying -The repository must be manually deploy to GitHub pages: +The repository must be manually deployed to GitHub pages: > ```bash @@ -46,8 +53,8 @@ npm run deploy ## Search -We are using Algolia [docsearch](https://www.algolia.com/docsearch) for our CE -documentation search. The algolia index is maintained by Algolia through their +We are using Algolia [docsearch](https://www.algolia.com/docsearch) for our +documentation search. The algolia index for Kong is maintained by Algolia through their docsearch service. Their [scraper](https://github.com/algolia/docsearch-scraper) runs every 24 hours. The config used by the scraper is open source for docs.konghq.com and can be found [here](https://github.com/algolia/docsearch-configs/blob/master/configs/getkong.json). diff --git a/algolia/config.json b/algolia/config.json new file mode 100644 index 000000000000..fc3ae28bce78 --- /dev/null +++ b/algolia/config.json @@ -0,0 +1,41 @@ +{ + "index_name": "prod_EE", + "start_urls": [ + { + "url": "https://docs.konghq.com/enterprise/(?P.*?)/", + "variables": { + "version": { + "url": "https://docs.konghq.com/enterprise/", + "js": "var versions = $('ul[aria-labelledby=version-dropdown] a, button#version-dropdown').map(function(i, e) { return $(e).text().replace(/\\s+/g, '').replace(/Version/g, '').replace(/\\(latest\\)/g, ''); }).toArray(); return JSON.stringify(versions);" + } + } + } + ], + "sitemap_urls": [ + "https://docs.konghq.com/sitemap.xml" + ], + "stop_urls": [ + + ], + "selectors": { + "lvl0": { + "selector": ".docs-navigation > a.active", + "global": true, + "default_value": "Kong" + }, + "lvl1": ".content h1", + "lvl2": ".content h2", + "lvl3": ".content h3", + "lvl4": ".content h4", + "text": ".content p, .content li" + }, + "selectors_exclude": [ + "#next-steps", + "#next-steps ~ p" + ], + "only_content_level": true, + "conversation_id": [ + "534091583" + ], + "nb_hits": 18645 +} diff --git a/app/.jekyll-metadata b/app/.jekyll-metadata new file mode 100644 index 0000000000000000000000000000000000000000..831baf1b581ab9af96f444888570c0b226d0aa22 GIT binary patch literal 1821193 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 z%0D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 lS1ko{b>V_dL36B literal 0 HcmV?d00001 diff --git a/app/0.10.x/configuration-reference.md b/app/0.10.x/configuration-reference.md new file mode 100644 index 000000000000..0d9cd75e8026 --- /dev/null +++ b/app/0.10.x/configuration-reference.md @@ -0,0 +1,3 @@ +--- +redirect_to: ../0.10.x/configuration/ +--- diff --git a/app/0.10.x/lua-reference/modules/kong.tools.responses/send.md b/app/0.10.x/lua-reference/modules/kong.tools.responses/send.md new file mode 100644 index 000000000000..97be5ba41546 --- /dev/null +++ b/app/0.10.x/lua-reference/modules/kong.tools.responses/send.md @@ -0,0 +1,3 @@ +--- +redirect_to: https://docs.konghq.com/0.10.x/lua-reference/modules/kong.tools.responses/#send +--- diff --git a/app/0.10.x/lua-reference/modules/modules/kong.tools.utils.html.md b/app/0.10.x/lua-reference/modules/modules/kong.tools.utils.html.md new file mode 100644 index 000000000000..1dcc02748d0d --- /dev/null +++ b/app/0.10.x/lua-reference/modules/modules/kong.tools.utils.html.md @@ -0,0 +1,3 @@ +--- +redirect_to: ../0.10.x/lua-reference/modules/kong.tools.utils/ +--- diff --git a/app/0.10.x/lua-reference/modules/modules/spec.helpers.html.md b/app/0.10.x/lua-reference/modules/modules/spec.helpers.html.md new file mode 100644 index 000000000000..03df5f095cbc --- /dev/null +++ b/app/0.10.x/lua-reference/modules/modules/spec.helpers.html.md @@ -0,0 +1,3 @@ +--- +redirect_to: ../0.10.x/lua-reference/modules/spec.helpers/ +--- diff --git a/app/0.11.x/configuration.md b/app/0.11.x/configuration.md index 63879e836496..6080729cb1fe 100644 --- a/app/0.11.x/configuration.md +++ b/app/0.11.x/configuration.md @@ -1,5 +1,6 @@ --- title: Configuration Reference +redirect_from: "/0.11.x/configuration-reference" --- ## Configuration loading diff --git a/app/0.11.x/lua-reference/modules/kong.tools.responses.html b/app/0.11.x/lua-reference/modules/kong.tools.responses.html index 27fbf15e7afc..c68ca7c086cd 100644 --- a/app/0.11.x/lua-reference/modules/kong.tools.responses.html +++ b/app/0.11.x/lua-reference/modules/kong.tools.responses.html @@ -3,22 +3,20 @@ layout: default --- - @@ -27,22 +25,44 @@

Public Lua API Reference