You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openserverless.apache.org by gi...@apache.org on 2024/10/29 20:28:11 UTC
(openserverless-site) branch asf-site updated: Published changes from 5c24bf2b23f82c33b99b50215f1c07a512784dae
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/openserverless-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new a5782f3 Published changes from 5c24bf2b23f82c33b99b50215f1c07a512784dae
a5782f3 is described below
commit a5782f3a5b4554efbaa775eaca6bdf173934b0be
Author: github-actions[bot] <op...@users.noreply.github.com>
AuthorDate: Tue Oct 29 20:28:05 2024 +0000
Published changes from 5c24bf2b23f82c33b99b50215f1c07a512784dae
---
.asf.yaml | 18 --
.gitignore | 5 -
404.html | 2 +-
LICENSE | 201 -----------------
about/index.html | 6 +-
.../openserverless-proposal-submitted/index.html | 4 +-
.../18/project-accepted-for-incubation/index.html | 4 +-
.../index.html | 4 +-
.../07/09/apache-openserverless-started/index.html | 4 +-
.../index.html | 4 +-
blog/_print/index.html | 4 +-
blog/index.html | 4 +-
blog/news/_print/index.html | 2 +-
blog/news/index.html | 2 +-
categories/index.html | 2 +-
community/_print/index.html | 2 +-
community/index.html | 2 +-
contribution-guidelines/index.html | 2 +-
docs/_print/index.html | 240 ++++++++++-----------
docs/cli/_print/index.html | 2 +-
docs/cli/admin/_print/index.html | 2 +-
docs/cli/admin/index.html | 4 +-
docs/cli/assets/_print/index.html | 2 +-
docs/cli/assets/index.html | 4 +-
docs/cli/debug/_print/index.html | 2 +-
docs/cli/debug/index.html | 4 +-
docs/cli/entities/_print/index.html | 2 +-
docs/cli/entities/actions/_print/index.html | 2 +-
docs/cli/entities/actions/index.html | 4 +-
docs/cli/entities/activations/_print/index.html | 2 +-
docs/cli/entities/activations/index.html | 4 +-
docs/cli/entities/index.html | 4 +-
docs/cli/entities/packages/_print/index.html | 2 +-
docs/cli/entities/packages/index.html | 4 +-
docs/cli/entities/rules/_print/index.html | 2 +-
docs/cli/entities/rules/index.html | 4 +-
docs/cli/entities/sequences/_print/index.html | 2 +-
docs/cli/entities/sequences/index.html | 4 +-
docs/cli/entities/triggers/_print/index.html | 2 +-
docs/cli/entities/triggers/index.html | 4 +-
docs/cli/index.html | 4 +-
docs/cli/project/_print/index.html | 2 +-
docs/cli/project/index.html | 4 +-
docs/index.html | 6 +-
docs/installation/_print/index.html | 4 +-
docs/installation/configure/_print/index.html | 4 +-
docs/installation/configure/dns/_print/index.html | 2 +-
docs/installation/configure/dns/index.html | 4 +-
docs/installation/configure/index.html | 6 +-
.../configure/services/_print/index.html | 2 +-
docs/installation/configure/services/index.html | 4 +-
docs/installation/debug/_print/index.html | 2 +-
docs/installation/debug/index.html | 4 +-
docs/installation/download/_print/index.html | 2 +-
docs/installation/download/index.html | 4 +-
docs/installation/index.html | 4 +-
docs/installation/install/_print/index.html | 4 +-
.../installation/install/cluster/_print/index.html | 2 +-
docs/installation/install/cluster/index.html | 4 +-
docs/installation/install/docker/_print/index.html | 2 +-
docs/installation/install/docker/index.html | 4 +-
docs/installation/install/index.html | 6 +-
docs/installation/install/server/_print/index.html | 2 +-
docs/installation/install/server/index.html | 4 +-
docs/installation/prereq/_print/index.html | 6 +-
docs/installation/prereq/docker/_print/index.html | 2 +-
docs/installation/prereq/docker/index.html | 4 +-
docs/installation/prereq/index.html | 6 +-
.../prereq/kubernetes/_print/index.html | 2 +-
.../prereq/kubernetes/aks/_print/index.html | 2 +-
docs/installation/prereq/kubernetes/aks/index.html | 4 +-
.../prereq/kubernetes/cluster/_print/index.html | 2 +-
.../prereq/kubernetes/cluster/index.html | 4 +-
.../prereq/kubernetes/eks/_print/index.html | 2 +-
docs/installation/prereq/kubernetes/eks/index.html | 4 +-
docs/installation/prereq/kubernetes/index.html | 4 +-
docs/installation/prereq/server/_print/index.html | 4 +-
.../prereq/server/aws/_print/index.html | 2 +-
docs/installation/prereq/server/aws/index.html | 4 +-
.../prereq/server/azure/_print/index.html | 2 +-
docs/installation/prereq/server/azure/index.html | 4 +-
.../prereq/server/generic/_print/index.html | 4 +-
docs/installation/prereq/server/generic/index.html | 6 +-
docs/installation/prereq/server/index.html | 4 +-
.../prereq/server/k3s/_print/index.html | 2 +-
docs/installation/prereq/server/k3s/index.html | 4 +-
.../prereq/server/mk8s/_print/index.html | 2 +-
docs/installation/prereq/server/mk8s/index.html | 4 +-
docs/installation/quickstart/_print/index.html | 2 +-
docs/installation/quickstart/index.html | 4 +-
docs/reference/_print/index.html | 236 ++++++++++----------
docs/reference/entities/_print/index.html | 172 +++++++--------
docs/reference/entities/actions/_print/index.html | 2 +-
docs/reference/entities/actions/index.html | 4 +-
.../entities/annotations/_print/index.html | 24 +--
docs/reference/entities/annotations/index.html | 26 +--
docs/reference/entities/feeds/_print/index.html | 58 ++---
docs/reference/entities/feeds/index.html | 60 +++---
docs/reference/entities/index.html | 12 +-
docs/reference/entities/packages/_print/index.html | 50 ++---
docs/reference/entities/packages/index.html | 52 ++---
.../entities/parameters/_print/index.html | 24 +--
docs/reference/entities/parameters/index.html | 26 +--
.../entities/webactions/_print/index.html | 46 ++--
docs/reference/entities/webactions/index.html | 48 ++---
docs/reference/index.html | 4 +-
docs/reference/references/_print/index.html | 74 +++----
.../actions-actionloop/_print/index.html | 42 ++--
.../references/actions-actionloop/index.html | 44 ++--
.../references/actions-new/_print/index.html | 14 +-
docs/reference/references/actions-new/index.html | 16 +-
.../references/advanced-cli/_print/index.html | 4 +-
docs/reference/references/advanced-cli/index.html | 6 +-
docs/reference/references/index.html | 6 +-
.../references/naming-limits/_print/index.html | 6 +-
docs/reference/references/naming-limits/index.html | 8 +-
.../references/rest_api/_print/index.html | 26 +--
docs/reference/references/rest_api/index.html | 28 +--
.../references/scheduler/_print/index.html | 6 +-
docs/reference/references/scheduler/index.html | 8 +-
docs/reference/runtimes/_print/index.html | 4 +-
docs/reference/runtimes/index.html | 6 +-
docs/reference/tasks/_print/index.html | 4 +-
docs/reference/tasks/config/_print/index.html | 4 +-
docs/reference/tasks/config/index.html | 6 +-
docs/reference/tasks/index.html | 6 +-
docs/reference/tasks/setup/_print/index.html | 4 +-
docs/reference/tasks/setup/index.html | 6 +-
docs/reference/tools/_print/index.html | 2 +-
docs/reference/tools/base64/_print/index.html | 4 +-
docs/reference/tools/base64/index.html | 6 +-
docs/reference/tools/datefmt/_print/index.html | 4 +-
docs/reference/tools/datefmt/index.html | 6 +-
docs/reference/tools/echoif/_print/index.html | 4 +-
docs/reference/tools/echoif/index.html | 6 +-
docs/reference/tools/echoifempty/_print/index.html | 4 +-
docs/reference/tools/echoifempty/index.html | 6 +-
.../reference/tools/echoifexists/_print/index.html | 4 +-
docs/reference/tools/echoifexists/index.html | 6 +-
docs/reference/tools/empty/_print/index.html | 4 +-
docs/reference/tools/empty/index.html | 6 +-
docs/reference/tools/executable/_print/index.html | 4 +-
docs/reference/tools/executable/index.html | 6 +-
docs/reference/tools/extract/_print/index.html | 4 +-
docs/reference/tools/extract/index.html | 6 +-
docs/reference/tools/filetype/_print/index.html | 4 +-
docs/reference/tools/filetype/index.html | 6 +-
docs/reference/tools/index.html | 4 +-
docs/reference/tools/needupdate/_print/index.html | 4 +-
docs/reference/tools/needupdate/index.html | 6 +-
docs/reference/tools/opspath/_print/index.html | 4 +-
docs/reference/tools/opspath/index.html | 6 +-
docs/reference/tools/random/_print/index.html | 4 +-
docs/reference/tools/random/index.html | 6 +-
docs/reference/tools/remove/_print/index.html | 4 +-
docs/reference/tools/remove/index.html | 6 +-
docs/reference/tools/rename/_print/index.html | 4 +-
docs/reference/tools/rename/index.html | 6 +-
docs/reference/tools/retry/_print/index.html | 4 +-
docs/reference/tools/retry/index.html | 6 +-
docs/reference/tools/sh/_print/index.html | 4 +-
docs/reference/tools/sh/index.html | 6 +-
docs/reference/tools/urlenc/_print/index.html | 4 +-
docs/reference/tools/urlenc/index.html | 6 +-
docs/reference/tools/validate/_print/index.html | 4 +-
docs/reference/tools/validate/index.html | 6 +-
docs/tutorial/_print/index.html | 2 +-
docs/tutorial/first-steps/_print/index.html | 2 +-
docs/tutorial/first-steps/index.html | 4 +-
docs/tutorial/form-validation/_print/index.html | 2 +-
docs/tutorial/form-validation/index.html | 4 +-
docs/tutorial/getting-started/_print/index.html | 2 +-
docs/tutorial/getting-started/index.html | 4 +-
docs/tutorial/index.html | 4 +-
docs/tutorial/notify-message/_print/index.html | 2 +-
docs/tutorial/notify-message/index.html | 4 +-
docs/tutorial/packaging/_print/index.html | 2 +-
docs/tutorial/packaging/index.html | 4 +-
docs/tutorial/use-database/_print/index.html | 2 +-
docs/tutorial/use-database/index.html | 4 +-
index.html | 2 +-
...rch-index.17f8b4f88ce2f9f2a3dbe35f9b90575c.json | 1 -
...rch-index.d257dc18fc1a0db2aa97239bd13779e2.json | 1 +
search/index.html | 2 +-
sitemap.xml | 2 +-
tags/index.html | 2 +-
186 files changed, 968 insertions(+), 1192 deletions(-)
diff --git a/.asf.yaml b/.asf.yaml
deleted file mode 100644
index 424d197..0000000
--- a/.asf.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-publish:
- whoami: asf-site
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index a640de4..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-.idea/
-.DS_Store
-*.swp
-.hugo_build.lock
-/resources
\ No newline at end of file
diff --git a/404.html b/404.html
index e3b84bc..5a43f8f 100644
--- a/404.html
+++ b/404.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicon [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/404.html"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="404 Page not found"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="404 Page not found"><meta itemprop=description content="A Docsy example site"><meta name=twitter:card [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/404.html"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="404 Page not found"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="404 Page not found"><meta itemprop=description content="A Docsy example site"><meta name=twitter:card [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 261eeb9..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/about/index.html b/about/index.html
index 279bb1b..dac5c6f 100644
--- a/about/index.html
+++ b/about/index.html
@@ -7,15 +7,15 @@ Allows you to configure a set of resources to be used for the development / depl
Managed by a Kubernetes Operator Here are some of the operator’s strong points:
The first operator capable of configuring a complete OpenWhisk distribution on various versions of Kubernetes, both on cloud providers and on bare metal.
The operator takes care of resources setup and maintenance.
-Allows you to configure a set of resources to be used for the development / deployment of cloud native applications based on the OpenWhisk serverless engine: redis, postgresql, minio and much more!"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:modified_time" content="2024-10-29T19:41:06+01:00"><meta itemprop=name content="About Apache OpenServerless"><meta itemprop=description content="Apache OpenServerless A complete Serverle [...]
+Allows you to configure a set of resources to be used for the development / deployment of cloud native applications based on the OpenWhisk serverless engine: redis, postgresql, minio and much more!"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:modified_time" content="2024-10-29T21:27:31+01:00"><meta itemprop=name content="About Apache OpenServerless"><meta itemprop=description content="Apache OpenServerless A complete Serverle [...]
Managed by a Kubernetes Operator Here are some of the operator’s strong points:
The first operator capable of configuring a complete OpenWhisk distribution on various versions of Kubernetes, both on cloud providers and on bare metal.
The operator takes care of resources setup and maintenance.
-Allows you to configure a set of resources to be used for the development / deployment of cloud native applications based on the OpenWhisk serverless engine: redis, postgresql, minio and much more!"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="205"><meta name=twitter:card content="summary"><meta name=twitter:title content="About Apache OpenServerless"><meta name=twitter:description content="Apache OpenServerless A complete Serverless D [...]
+Allows you to configure a set of resources to be used for the development / deployment of cloud native applications based on the OpenWhisk serverless engine: redis, postgresql, minio and much more!"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="205"><meta name=twitter:card content="summary"><meta name=twitter:title content="About Apache OpenServerless"><meta name=twitter:description content="Apache OpenServerless A complete Serverless D [...]
Managed by a Kubernetes Operator Here are some of the operator’s strong points:
The first operator capable of configuring a complete OpenWhisk distribution on various versions of Kubernetes, both on cloud providers and on bare metal.
The operator takes care of resources setup and maintenance.
-Allows you to configure a set of resources to be used for the development / deployment of cloud native applications based on the OpenWhisk serverless engine: redis, postgresql, minio and much more!"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defe [...]
+Allows you to configure a set of resources to be used for the development / deployment of cloud native applications based on the OpenWhisk serverless engine: redis, postgresql, minio and much more!"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defe [...]
both on cloud providers and on bare metal.</p><p>The operator takes care of resources setup and maintenance.</p><p>Allows you to configure a set of resources to be used for the development / deployment of cloud native applications
based on the OpenWhisk serverless engine: redis, postgresql, minio and much more!</p></div></div></div></section><div><a id=td-block-3 class=td-offset-anchor></a></div><section class="row td-box td-box--3 position-relative td-box--height-auto"><div class=col-12><div class="container text-center td-arrow-down"><div class="h4 mb-0"><h1 class=text-center id=a-super-powered-cli-extensible-with-plugins>A super-powered CLI extensible with plugins</h1><br><p>The <strong>ops</strong> cli is more [...]
more!</p><p><em>EXTENSIBLE</em> - easily extendable by writing simple plugins in shell or javascript.</p><p>WHISK-READY - it includes all openwhisk tools.</p><div class=ops-asciinema-ext><div id=ops_asc_cast></div><script src=/js/asciinema-player.min.js></script><link rel=stylesheet type=text/css href=/css/asciinema-player.css><script>AsciinemaPlayer.create("/casts/ops.cast",document.getElementById("ops_asc_cast"),{cols:"80",rows:"25"})</script></div></div></div></div></section><div><a i [...]
diff --git a/blog/2024/06/10/openserverless-proposal-submitted/index.html b/blog/2024/06/10/openserverless-proposal-submitted/index.html
index 7a308dd..b617be0 100644
--- a/blog/2024/06/10/openserverless-proposal-submitted/index.html
+++ b/blog/2024/06/10/openserverless-proposal-submitted/index.html
@@ -1,6 +1,6 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicon [...]
<meta name=description content="We are submitting the OpenServerless project to the Apache Software Foundation
-"><meta property="og:url" content="/blog/2024/06/10/openserverless-proposal-submitted/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="OpenServerless Proposal Submitted"><meta property="og:description" content="We are submitting the OpenServerless project to the Apache Software Foundation"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="art [...]
+"><meta property="og:url" content="/blog/2024/06/10/openserverless-proposal-submitted/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="OpenServerless Proposal Submitted"><meta property="og:description" content="We are submitting the OpenServerless project to the Apache Software Foundation"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="art [...]
<label for=m-blognews-check><a href=/blog/news/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-blognews><span>News</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240712assembling-the-lab-for-openserverless-li><input type=checkbox id=m-blog20240712assembling-the-lab-for-openserverless-check>
<label for=m-blog20240712assembling-the-lab-for-openserverless-check><a href=/blog/2024/07/12/assembling-the-lab-for-openserverless/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240712assembling-the-lab-for-openserverless><span>Assembling the lab for OpenServerless</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240709apache-openserverless-started-li><input type=checkbox id=m-blog20240709apache- [...]
<label for=m-blog20240709apache-openserverless-started-check><a href=/blog/2024/07/09/apache-openserverless-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240709apache-openserverless-started><span>Apache OpenServerless started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240620the-name-openserverless-was-approved-li><input type=checkbox id=m-blog20240620the-name-openserverless-was-appr [...]
@@ -11,7 +11,7 @@
<a href="https://github.com/apache/openserverless/issues/new/main/content/en/blog/news?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+top+ [...]
<a href="https://github.com/apache/openserverless/issues/issues/new?title=OpenServerless%20Proposal%20Submitted" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
-<a id=print href=/blog/news/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5 pe-md-4" role=main><a class=td-rss-button title=RSS href=/blog/news/index.xml target=_blank rel=noopener><i class="fa-solid fa-rss" aria-hidden=true></i></a><div class=td-content><h1>OpenServerless Proposal Submitted</h1><div class=lead>We are submitting the OpenServerless project to the Apache Software Foundation</div><div class= [...]
+<a id=print href=/blog/news/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5 pe-md-4" role=main><a class=td-rss-button title=RSS href=/blog/news/index.xml target=_blank rel=noopener><i class="fa-solid fa-rss" aria-hidden=true></i></a><div class=td-content><h1>OpenServerless Proposal Submitted</h1><div class=lead>We are submitting the OpenServerless project to the Apache Software Foundation</div><div class= [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/blog/2024/06/18/project-accepted-for-incubation/index.html b/blog/2024/06/18/project-accepted-for-incubation/index.html
index 7308d8a..23d20a7 100644
--- a/blog/2024/06/18/project-accepted-for-incubation/index.html
+++ b/blog/2024/06/18/project-accepted-for-incubation/index.html
@@ -1,6 +1,6 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicon [...]
<meta name=description content="OpenServerless is now incubating at the Apache Software Foundation!
-"><meta property="og:url" content="/blog/2024/06/18/project-accepted-for-incubation/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Project Accepted for Incubation!"><meta property="og:description" content="OpenServerless is now incubating at the Apache Software Foundation!"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="article:published [...]
+"><meta property="og:url" content="/blog/2024/06/18/project-accepted-for-incubation/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Project Accepted for Incubation!"><meta property="og:description" content="OpenServerless is now incubating at the Apache Software Foundation!"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="article:published [...]
<label for=m-blognews-check><a href=/blog/news/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-blognews><span>News</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240712assembling-the-lab-for-openserverless-li><input type=checkbox id=m-blog20240712assembling-the-lab-for-openserverless-check>
<label for=m-blog20240712assembling-the-lab-for-openserverless-check><a href=/blog/2024/07/12/assembling-the-lab-for-openserverless/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240712assembling-the-lab-for-openserverless><span>Assembling the lab for OpenServerless</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240709apache-openserverless-started-li><input type=checkbox id=m-blog20240709apache- [...]
<label for=m-blog20240709apache-openserverless-started-check><a href=/blog/2024/07/09/apache-openserverless-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240709apache-openserverless-started><span>Apache OpenServerless started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240620the-name-openserverless-was-approved-li><input type=checkbox id=m-blog20240620the-name-openserverless-was-appr [...]
@@ -30,7 +30,7 @@ this vote passed with the following result:
Thanks all for your vote !
Regards JB
-</code></pre><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/blog/2024/06/10/openserverless-proposal-submitted/ aria-label="Previous - OpenServerless Proposal Submitted" class="btn btn-primary"><span class=me-1>←</span>Previous</a></li><li><a href=/blog/2024/06/20/the-name-openserverless-was-approved/ aria-label="Next - The Name OpenServerless Was Approved" class="btn btn-primary">Next<span class=ms-1>→</span></a></li></ul><div class=td- [...]
+</code></pre><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/blog/2024/06/10/openserverless-proposal-submitted/ aria-label="Previous - OpenServerless Proposal Submitted" class="btn btn-primary"><span class=me-1>←</span>Previous</a></li><li><a href=/blog/2024/06/20/the-name-openserverless-was-approved/ aria-label="Next - The Name OpenServerless Was Approved" class="btn btn-primary">Next<span class=ms-1>→</span></a></li></ul><div class=td- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/blog/2024/06/20/the-name-openserverless-was-approved/index.html b/blog/2024/06/20/the-name-openserverless-was-approved/index.html
index 576ad09..b1f00a6 100644
--- a/blog/2024/06/20/the-name-openserverless-was-approved/index.html
+++ b/blog/2024/06/20/the-name-openserverless-was-approved/index.html
@@ -1,6 +1,6 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicon [...]
<meta name=description content="The name Apache OpenServerless has been approved by the Apache Software Foundation!
-"><meta property="og:url" content="/blog/2024/06/20/the-name-openserverless-was-approved/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="The Name OpenServerless Was Approved"><meta property="og:description" content="The name Apache OpenServerless has been approved by the Apache Software Foundation! "><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta p [...]
+"><meta property="og:url" content="/blog/2024/06/20/the-name-openserverless-was-approved/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="The Name OpenServerless Was Approved"><meta property="og:description" content="The name Apache OpenServerless has been approved by the Apache Software Foundation! "><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta p [...]
<label for=m-blognews-check><a href=/blog/news/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-blognews><span>News</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240712assembling-the-lab-for-openserverless-li><input type=checkbox id=m-blog20240712assembling-the-lab-for-openserverless-check>
<label for=m-blog20240712assembling-the-lab-for-openserverless-check><a href=/blog/2024/07/12/assembling-the-lab-for-openserverless/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240712assembling-the-lab-for-openserverless><span>Assembling the lab for OpenServerless</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240709apache-openserverless-started-li><input type=checkbox id=m-blog20240709apache- [...]
<label for=m-blog20240709apache-openserverless-started-check><a href=/blog/2024/07/09/apache-openserverless-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240709apache-openserverless-started><span>Apache OpenServerless started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id=m-blog20240620the-name-openserverless-was-approved-li><input type=checkbox id=m-blog20240620the-name-openserverl [...]
@@ -11,7 +11,7 @@
<a href="https://github.com/apache/openserverless/issues/new/main/content/en/blog/news?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+top+ [...]
<a href="https://github.com/apache/openserverless/issues/issues/new?title=The%20Name%20OpenServerless%20Was%20Approved" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
-<a id=print href=/blog/news/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5 pe-md-4" role=main><a class=td-rss-button title=RSS href=/blog/news/index.xml target=_blank rel=noopener><i class="fa-solid fa-rss" aria-hidden=true></i></a><div class=td-content><h1>The Name OpenServerless Was Approved</h1><div class=lead>The name Apache OpenServerless has been approved by the Apache Software Foundation!</div><di [...]
+<a id=print href=/blog/news/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5 pe-md-4" role=main><a class=td-rss-button title=RSS href=/blog/news/index.xml target=_blank rel=noopener><i class="fa-solid fa-rss" aria-hidden=true></i></a><div class=td-content><h1>The Name OpenServerless Was Approved</h1><div class=lead>The name Apache OpenServerless has been approved by the Apache Software Foundation!</div><di [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/blog/2024/07/09/apache-openserverless-started/index.html b/blog/2024/07/09/apache-openserverless-started/index.html
index d24a0cc..8a07065 100644
--- a/blog/2024/07/09/apache-openserverless-started/index.html
+++ b/blog/2024/07/09/apache-openserverless-started/index.html
@@ -1,6 +1,6 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicon [...]
<meta name=description content="The project Apache OpenServerless is now active
-"><meta property="og:url" content="/blog/2024/07/09/apache-openserverless-started/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Apache OpenServerless started"><meta property="og:description" content="The project Apache OpenServerless is now active"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="article:published_time" content="2024-07-0 [...]
+"><meta property="og:url" content="/blog/2024/07/09/apache-openserverless-started/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Apache OpenServerless started"><meta property="og:description" content="The project Apache OpenServerless is now active"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="article:published_time" content="2024-07-0 [...]
<label for=m-blognews-check><a href=/blog/news/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-blognews><span>News</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240712assembling-the-lab-for-openserverless-li><input type=checkbox id=m-blog20240712assembling-the-lab-for-openserverless-check>
<label for=m-blog20240712assembling-the-lab-for-openserverless-check><a href=/blog/2024/07/12/assembling-the-lab-for-openserverless/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240712assembling-the-lab-for-openserverless><span>Assembling the lab for OpenServerless</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id=m-blog20240709apache-openserverless-started-li><input type=checkbox id=m-blog202 [...]
<label for=m-blog20240709apache-openserverless-started-check><a href=/blog/2024/07/09/apache-openserverless-started/ class="align-left ps-0 active td-sidebar-link td-sidebar-link__page" id=m-blog20240709apache-openserverless-started><span class=td-sidebar-nav-active-item>Apache OpenServerless started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240620the-name-openserverless-was-approved-li><input type=checkbox id=m-blog [...]
@@ -12,7 +12,7 @@
<a href="https://github.com/apache/openserverless/issues/issues/new?title=Apache%20OpenServerless%20started" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
<a id=print href=/blog/news/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5 pe-md-4" role=main><a class=td-rss-button title=RSS href=/blog/news/index.xml target=_blank rel=noopener><i class="fa-solid fa-rss" aria-hidden=true></i></a><div class=td-content><h1>Apache OpenServerless started</h1><div class=lead>The project Apache OpenServerless is now active</div><div class="td-byline mb-4"><time datetime=202 [...]
-</code></pre><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/blog/2024/06/20/the-name-openserverless-was-approved/ aria-label="Previous - The Name OpenServerless Was Approved" class="btn btn-primary"><span class=me-1>←</span>Previous</a></li><li><a href=/blog/2024/07/12/assembling-the-lab-for-openserverless/ aria-label="Next - Assembling the lab for OpenServerless" class="btn btn-primary">Next<span class=ms-1>→</span></a></li></ul><div c [...]
+</code></pre><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/blog/2024/06/20/the-name-openserverless-was-approved/ aria-label="Previous - The Name OpenServerless Was Approved" class="btn btn-primary"><span class=me-1>←</span>Previous</a></li><li><a href=/blog/2024/07/12/assembling-the-lab-for-openserverless/ aria-label="Next - Assembling the lab for OpenServerless" class="btn btn-primary">Next<span class=ms-1>→</span></a></li></ul><div c [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/blog/2024/07/12/assembling-the-lab-for-openserverless/index.html b/blog/2024/07/12/assembling-the-lab-for-openserverless/index.html
index 9a1afd1..8aae0c1 100644
--- a/blog/2024/07/12/assembling-the-lab-for-openserverless/index.html
+++ b/blog/2024/07/12/assembling-the-lab-for-openserverless/index.html
@@ -1,6 +1,6 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicon [...]
<meta name=description content="Our first code drop is available: the development environment!
-"><meta property="og:url" content="/blog/2024/07/12/assembling-the-lab-for-openserverless/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Assembling the lab for OpenServerless"><meta property="og:description" content="Our first code drop is available: the development environment!"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="article:pub [...]
+"><meta property="og:url" content="/blog/2024/07/12/assembling-the-lab-for-openserverless/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Assembling the lab for OpenServerless"><meta property="og:description" content="Our first code drop is available: the development environment!"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="article:pub [...]
<label for=m-blognews-check><a href=/blog/news/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-blognews><span>News</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id=m-blog20240712assembling-the-lab-for-openserverless-li><input type=checkbox id=m-blog20240712assembling-the-lab-for-openserverless-check checked>
<label for=m-blog20240712assembling-the-lab-for-openserverless-check><a href=/blog/2024/07/12/assembling-the-lab-for-openserverless/ class="align-left ps-0 active td-sidebar-link td-sidebar-link__page" id=m-blog20240712assembling-the-lab-for-openserverless><span class=td-sidebar-nav-active-item>Assembling the lab for OpenServerless</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240709apache-openserverless-started-li><inpu [...]
<label for=m-blog20240709apache-openserverless-started-check><a href=/blog/2024/07/09/apache-openserverless-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240709apache-openserverless-started><span>Apache OpenServerless started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240620the-name-openserverless-was-approved-li><input type=checkbox id=m-blog20240620the-name-openserverless-was-appr [...]
@@ -11,7 +11,7 @@
<a href="https://github.com/apache/openserverless/issues/new/main/content/en/blog/news?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+top+ [...]
<a href="https://github.com/apache/openserverless/issues/issues/new?title=Assembling%20the%20lab%20for%20OpenServerless" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
-<a id=print href=/blog/news/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#the-development-virtual-machine>The Development Virtual Machine</a></li><li><a href=#what-is-in-the-development-machine>What is in the development machine?</a></li><li><a href=#what-is-in-the-development-machine-1>What is in the development machine?</a></li></ul></nav></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md- [...]
+<a id=print href=/blog/news/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#the-development-virtual-machine>The Development Virtual Machine</a></li><li><a href=#what-is-in-the-development-machine>What is in the development machine?</a></li><li><a href=#what-is-in-the-development-machine-1>What is in the development machine?</a></li></ul></nav></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/blog/_print/index.html b/blog/_print/index.html
index 9430e5b..c3b9be7 100644
--- a/blog/_print/index.html
+++ b/blog/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/blog/><link rel=alternate type=application/rss+xml href=/blog/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180>< [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/blog/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Blog"><meta property="og:description" content="This is the blog section. It has two categories: News and Releases.
Files in these directories will be listed in reverse chronological order."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Blog"><meta itemprop=description content="This is the blog section. It has two categories: News and Releases.
-Files in these directories will be listed in reverse chronological order."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="23"><meta name=twitter:card content="summary"><meta name=twitter:title content="Blog"><meta name=twitter:description content="This is the blog section. It has two categories: News and Releases.
-Files in these directories will be listed in reverse chronological order."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class="td-section td-blog"><heade [...]
+Files in these directories will be listed in reverse chronological order."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="23"><meta name=twitter:card content="summary"><meta name=twitter:title content="Blog"><meta name=twitter:description content="This is the blog section. It has two categories: News and Releases.
+Files in these directories will be listed in reverse chronological order."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class="td-section td-blog"><heade [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/blog/>Return to the regular view of this page</a>.</p></div><h1 class=title>Blog</h1><ul><li><a href=#pg-995c359e0eda056a2e3b98e604c59580>News</a></li><ul><li><a href=#pg-8fc8614233bb8546a53fd3f04af36c78>Assembling the lab for OpenServerless</a></li><li><a href=#pg-4d4273bba69f1e44218681025b558663>Apache OpenServerless started</a></li><li><a href=#pg-3aa4d68d98e0829b25cf6644069c70db>The Name OpenServerless Was [...]
</code></pre></div><div class=td-content style=page-break-before:always><h1 id=pg-3aa4d68d98e0829b25cf6644069c70db>The Name OpenServerless Was Approved</h1><div class=lead>The name Apache OpenServerless has been approved by the Apache Software Foundation!</div><div class="td-byline mb-4"><time datetime=2024-06-20 class=text-body-secondary>Thursday, June 20, 2024</time></div><p>We are in the process of submitting thr open source codebase of Nuvolaris Community, to the Apache Software Foun [...]
Date: Tuesday 18 June 2024 16:20:06 BST
diff --git a/blog/index.html b/blog/index.html
index b037468..46f4c12 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/blog/_print/><link rel=alternate type=application/rss+xml href=/blog/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x18 [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/blog/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Blog"><meta property="og:description" content="This is the blog section. It has two categories: News and Releases.
Files in these directories will be listed in reverse chronological order."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Blog"><meta itemprop=description content="This is the blog section. It has two categories: News and Releases.
-Files in these directories will be listed in reverse chronological order."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="23"><meta name=twitter:card content="summary"><meta name=twitter:title content="Blog"><meta name=twitter:description content="This is the blog section. It has two categories: News and Releases.
-Files in these directories will be listed in reverse chronological order."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class="td-section td-blog"><heade [...]
+Files in these directories will be listed in reverse chronological order."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="23"><meta name=twitter:card content="summary"><meta name=twitter:title content="Blog"><meta name=twitter:description content="This is the blog section. It has two categories: News and Releases.
+Files in these directories will be listed in reverse chronological order."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class="td-section td-blog"><heade [...]
<label for=m-blognews-check><a href=/blog/news/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-blognews><span>News</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240712assembling-the-lab-for-openserverless-li><input type=checkbox id=m-blog20240712assembling-the-lab-for-openserverless-check>
<label for=m-blog20240712assembling-the-lab-for-openserverless-check><a href=/blog/2024/07/12/assembling-the-lab-for-openserverless/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240712assembling-the-lab-for-openserverless><span>Assembling the lab for OpenServerless</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240709apache-openserverless-started-li><input type=checkbox id=m-blog20240709apache- [...]
<label for=m-blog20240709apache-openserverless-started-check><a href=/blog/2024/07/09/apache-openserverless-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240709apache-openserverless-started><span>Apache OpenServerless started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240620the-name-openserverless-was-approved-li><input type=checkbox id=m-blog20240620the-name-openserverless-was-appr [...]
diff --git a/blog/news/_print/index.html b/blog/news/_print/index.html
index ce3b6f8..d1dc2e9 100644
--- a/blog/news/_print/index.html
+++ b/blog/news/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/blog/news/><link rel=alternate type=application/rss+xml href=/blog/news/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/blog/news/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="News"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="News"><meta itemprop=description content="A Docsy example site"><meta itemprop=dateModified content="2024-10-29T1 [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/blog/news/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="News"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="News"><meta itemprop=description content="A Docsy example site"><meta itemprop=dateModified content="2024-10-29T2 [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/blog/news/>Return to the regular view of this page</a>.</p></div><h1 class=title>News</h1><ul><li><a href=#pg-8fc8614233bb8546a53fd3f04af36c78>Assembling the lab for OpenServerless</a></li><li><a href=#pg-4d4273bba69f1e44218681025b558663>Apache OpenServerless started</a></li><li><a href=#pg-3aa4d68d98e0829b25cf6644069c70db>The Name OpenServerless Was Approved</a></li><li><a href=#pg-a17b86729fdc2d27efba826e8e16 [...]
</code></pre></div><div class=td-content style=page-break-before:always><h1 id=pg-3aa4d68d98e0829b25cf6644069c70db>The Name OpenServerless Was Approved</h1><div class=lead>The name Apache OpenServerless has been approved by the Apache Software Foundation!</div><div class="td-byline mb-4"><time datetime=2024-06-20 class=text-body-secondary>Thursday, June 20, 2024</time></div><p>We are in the process of submitting thr open source codebase of Nuvolaris Community, to the Apache Software Foun [...]
Date: Tuesday 18 June 2024 16:20:06 BST
diff --git a/blog/news/index.html b/blog/news/index.html
index 127e784..2eff6c0 100644
--- a/blog/news/index.html
+++ b/blog/news/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/blog/news/_print/><link rel=alternate type=application/rss+xml href=/blog/news/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png si [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/blog/news/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="News"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="News"><meta itemprop=description content="A Docsy example site"><meta itemprop=dateModified content="2024-10-29T1 [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/blog/news/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="News"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="News"><meta itemprop=description content="A Docsy example site"><meta itemprop=dateModified content="2024-10-29T2 [...]
<label for=m-blognews-check><a href=/blog/news/ class="align-left ps-0 active td-sidebar-link td-sidebar-link__section" id=m-blognews><span class=td-sidebar-nav-active-item>News</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240712assembling-the-lab-for-openserverless-li><input type=checkbox id=m-blog20240712assembling-the-lab-for-openserverless-check>
<label for=m-blog20240712assembling-the-lab-for-openserverless-check><a href=/blog/2024/07/12/assembling-the-lab-for-openserverless/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240712assembling-the-lab-for-openserverless><span>Assembling the lab for OpenServerless</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240709apache-openserverless-started-li><input type=checkbox id=m-blog20240709apache- [...]
<label for=m-blog20240709apache-openserverless-started-check><a href=/blog/2024/07/09/apache-openserverless-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__page" id=m-blog20240709apache-openserverless-started><span>Apache OpenServerless started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-blog20240620the-name-openserverless-was-approved-li><input type=checkbox id=m-blog20240620the-name-openserverless-was-appr [...]
diff --git a/categories/index.html b/categories/index.html
index f13f505..080779e 100644
--- a/categories/index.html
+++ b/categories/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=application/rss+xml href=/categories/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/f [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/categories/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Categories"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Categories"><meta itemprop=description content="A Docsy example site"><meta name=twitter:card content="sum [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/categories/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Categories"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Categories"><meta itemprop=description content="A Docsy example site"><meta name=twitter:card content="sum [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/community/_print/index.html b/community/_print/index.html
index f6ca855..03ff19a 100644
--- a/community/_print/index.html
+++ b/community/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/community/><link rel=alternate type=application/rss+xml href=/community/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/community/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Community"><meta property="og:description" content=" "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Community"><meta itemprop=description content=" "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta name=tw [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/community/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Community"><meta property="og:description" content=" "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Community"><meta itemprop=description content=" "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta name=tw [...]
Discussion and help from your fellow users</li><li title=X.com><a target=_blank rel=noopener href=https://x.com/open_serverless><i class="fab fa-x-twitter"></i> X.com</a>:
Follow us on Twitter to get the latest news!</li><li title=Reddit><a target=_blank rel=noopener href=https://reddit.com/r/openserverless><i class="fab fa-reddit"></i> Reddit</a>:
Practical questions and curated answers</li></ul></div><div class="col-xs-12 col-sm-6 col-md-6 col-lg-6"><h2>Develop and Contribute</h2><p>If you want to get more involved by contributing to Apache OpenServerless™, join us here:</p><ul><li title=GitHub><a target=_blank rel=noopener href=https://github.com/apache/openserverless><i class="fab fa-github"></i> GitHub</a>:
diff --git a/community/index.html b/community/index.html
index 3e41956..75e02fe 100644
--- a/community/index.html
+++ b/community/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/community/_print/><link rel=alternate type=application/rss+xml href=/community/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png si [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/community/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Community"><meta property="og:description" content=" "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Community"><meta itemprop=description content=" "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta name=tw [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/community/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Community"><meta property="og:description" content=" "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Community"><meta itemprop=description content=" "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta name=tw [...]
Discussion and help from your fellow users</li><li title=X.com><a target=_blank rel=noopener href=https://x.com/open_serverless><i class="fab fa-x-twitter"></i> X.com</a>:
Follow us on Twitter to get the latest news!</li><li title=Reddit><a target=_blank rel=noopener href=https://reddit.com/r/openserverless><i class="fab fa-reddit"></i> Reddit</a>:
Practical questions and curated answers</li></ul></div><div class="col-xs-12 col-sm-6 col-md-6 col-lg-6"><h2>Develop and Contribute</h2><p>If you want to get more involved by contributing to Apache OpenServerless™, join us here:</p><ul><li title=GitHub><a target=_blank rel=noopener href=https://github.com/apache/openserverless><i class="fab fa-github"></i> GitHub</a>:
diff --git a/contribution-guidelines/index.html b/contribution-guidelines/index.html
index 72de9f7..d9c2295 100644
--- a/contribution-guidelines/index.html
+++ b/contribution-guidelines/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicon [...]
-<meta name=description content="How to contribute to the Apache OpenServerless Project"><meta property="og:url" content="/contribution-guidelines/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Contribution Guidelines"><meta property="og:description" content="How to contribute to the Apache OpenServerless Project"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:modified_time" co [...]
+<meta name=description content="How to contribute to the Apache OpenServerless Project"><meta property="og:url" content="/contribution-guidelines/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Contribution Guidelines"><meta property="og:description" content="How to contribute to the Apache OpenServerless Project"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:modified_time" co [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/_print/index.html b/docs/_print/index.html
index d866660..3a4712f 100644
--- a/docs/_print/index.html
+++ b/docs/_print/index.html
@@ -5,10 +5,10 @@ OpenServerless is based on Apache OpenWhisk, which provides a powerful, producti
However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Docs"><meta itemprop=description content="About Apache OpenServerless Apache OpenServerless is an Open Source project, released under the Apache License 2.0 providing a portable and complete Serverless environment, allowing to build quickly and easily c [...]
Our goal is to make OpenServerless ubitiquous, allowing it to easily run a complete and portable environment that runs in every Kubernetes.
OpenServerless is based on Apache OpenWhisk, which provides a powerful, production-ready serverless engine.
-However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="209"><meta name=twitter:card content="summary"><meta name=twitter:title content="Docs"><meta name=twitter:description content="About Apache OpenServerless Apache OpenServerless is an Open Source project, released under the Apache License 2.0 providing a portable and [...]
+However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="209"><meta name=twitter:card content="summary"><meta name=twitter:title content="Docs"><meta name=twitter:description content="About Apache OpenServerless Apache OpenServerless is an Open Source project, released under the Apache License 2.0 providing a portable and [...]
Our goal is to make OpenServerless ubitiquous, allowing it to easily run a complete and portable environment that runs in every Kubernetes.
OpenServerless is based on Apache OpenWhisk, which provides a powerful, production-ready serverless engine.
-However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/pris [...]
+However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/pris [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/>Return to the regular view of this page</a>.</p></div><h1 class=title>Docs</h1><ul><li>1: <a href=#pg-2c1938025a1224a6506a8d481ee4a5c6>Tutorial</a></li><ul><li>1.1: <a href=#pg-3b1ec3a9b3851e0ec55c8e2ff8c84699>Getting started</a></li><ul></ul><li>1.2: <a href=#pg-027017c25c90f3e4086f50e27ba217ca>First steps</a></li><ul></ul><li>1.3: <a href=#pg-b45007aa6cc09b274b1d98c8a381a96c>Form validation</a></li><ul> [...]
<a href=https://github.com/apache/openserverless/blob/main/LICENSE>Apache License
2.0</a>
@@ -1074,7 +1074,7 @@ programming language</a>, originally developed
specifically to support the <a href=https://github.com/apache/openwhisk-runtime-go>OpenWhisk and OpenServerless Go language
runtime</a>. However, it
was written in a generic way such that it has since been adopted to
-implement OpenWhisk and Nuvolaris runtimes for Swift, PHP, Python, Rust,
+implement OpenWhisk and OpenServerless runtimes for Swift, PHP, Python, Rust,
Java, Ruby and Crystal. Even though it was developed with compiled
languages in mind it works equally well with scripting languages.</p><p>Using it, you can develop a new runtime in a fraction of the time needed
for authoring a full-fledged runtime from scratch. This is due to the
@@ -1156,7 +1156,7 @@ actionloop-demo-ruby-v2.6 latest df3e77c9cd8f 2 minutes ag
<code>actionloop-demo-ruby-v2.6</code>. However, despite having <code>Ruby</code> in the name,
internally it still is a <code>Python</code> language runtime which we will need to
change to one supporting <code>Ruby</code> as we continue in this tutorial.</p><h2 id=preparing-the-docker-environment>Preparing the Docker environment</h2><p>Our language runtime’s <code>Dockerfile</code> has the task of preparing an
-environment for executing OpenWhisk and Nuvolaris Actions. Using the
+environment for executing OpenWhisk and OpenServerless Actions. Using the
ActionLoop approach, we use a multistage Docker build to</p><ol><li><p>derive our OpenWhisk and OpenServerless language runtime from an existing
Docker image that has all the target language’s tools and libraries
for running functions authored in that language.</p><ul><li>In our case, we will reference the <code>ruby:2.6.2-alpine3.9</code> image
@@ -1164,7 +1164,7 @@ from the <a href=https://hub.docker.com/_/ruby>Official Docker Images for
Ruby</a> on Docker Hub.</li></ul></li><li><p>leverage the existing <code>openwhisk/actionlooop-v2</code> image on Docker Hub
from which we will “extract” the <em>ActionLoop</em> proxy (i.e. copy
<code>/bin/proxy</code> binary) our runtime will use to process Activation
-requests from the OpenWhisk and Nuvolaris platform and execute
+requests from the OpenWhisk and OpenServerless platform and execute
Actions by using the language’s tools and libraries from step #1.</p></li></ol><h2 id=repurpose-the-renamed-python-dockerfile-for-ruby-builds>Repurpose the renamed Python Dockerfile for Ruby builds</h2><p>Let’s edit the <code>ruby2.6/Dockerfile</code> to use the official Ruby image on
Docker Hub as our base image, instead of a Python image, and add our our
Ruby launcher script:</p><pre><code> FROM openwhisk/actionloop-v2:latest as builder
@@ -1210,7 +1210,7 @@ from main__ import main as main
require "./main__"
</code></pre><p><em>Note that you are free to decide the path and filename for the
function’s source code. In our examples, we chose a base filename that
-includes the word <code>"main"</code> (since it is OpenWhisk and Nuvolaris’s
+includes the word <code>"main"</code> (since it is OpenWhisk and OpenServerless
default function name) and append two underscores to better assure
uniqueness.</em></p><h4 id=open-file-descriptor-fd-3-for-function-results-output>Open File Descriptor (FD) 3 for function results output</h4><p>The <code>ActionLoop</code> proxy expects to read the results of invoking the
Action function from File Descriptor (FD) 3.</p><p>The existing Python:</p><pre><code>out = fdopen(3, "wb")
@@ -1358,7 +1358,7 @@ change:</p><pre><code> write_file("%s/exec" % tgt_dir, ""&qu
</code></pre><p>For an interpreted language that is all. We move the <code>src</code> folder in the
<code>bin</code>. For a compiled language instead, we may want to actually invoke
the compiler to produce the executable.</p><h2 id=debugging>Debugging</h2><p>Now that we have completed both the <code>launcher</code> and <code>compile</code> scripts, it
-is time to test them.</p><p>Here we will learn how to:</p><ol><li><p>enter in a test environment</p></li><li><p>simple smoke tests to check things work</p></li><li><p>writing the validation tests</p></li><li><p>testing the image in an actual OpenWhisk and Nuvolaris environment</p></li></ol><h3 id=entering-in-the-test-environment>Entering in the test environment</h3><p>In the starter kit, there is a <code>Makefile</code> that can help with our
+is time to test them.</p><p>Here we will learn how to:</p><ol><li><p>enter in a test environment</p></li><li><p>simple smoke tests to check things work</p></li><li><p>writing the validation tests</p></li><li><p>testing the image in an actual OpenWhisk and OpenServerless environment</p></li></ol><h3 id=entering-in-the-test-environment>Entering in the test environment</h3><p>In the starter kit, there is a <code>Makefile</code> that can help with our
development efforts.</p><p>We can build the Dockerfile using the provided Makefile. Since it has a
reference to the image we are building, let’s change it:</p><pre><code>sed -i.bak -e 's/actionloop-demo-python-v3.7/actionloop-demo-ruby-v2.6/' ruby2.6/Makefile
</code></pre><p>We should be now able to build the image and enter in it with
@@ -1389,7 +1389,7 @@ $ make debug
# results omitted for brevity ...
# (you should see a shell prompt of your image)
$ /bin/proxy -debug
-2019/04/08 07:47:36 OpenWhisk and Nuvolaris ActionLoop Proxy 2: starting
+2019/04/08 07:47:36 OpenWhisk and OpenServerless ActionLoop Proxy 2: starting
</code></pre><p>Now the runtime is started in debug mode, listening on port 8080, and
ready to accept Action deployments.</p><p>Open another terminal (while leaving the first one running the proxy)
and go <em>into the top-level directory of our project</em> to test the Action
@@ -1404,7 +1404,7 @@ $ python tools/invoke.py run '{"name":"Mike"}'
</code></pre><p>We should also see debug output from the first terminal running the
proxy (with the <code>debug</code> flag) which should have successfully processed
the <code>init</code> and <code>run</code> requests above.</p><p>The proxy’s debug output should appear something like:</p><pre><code>/proxy # /bin/proxy -debug
-2019/04/08 07:54:57 OpenWhisk and Nuvolaris ActionLoop Proxy 2: starting
+2019/04/08 07:54:57 OpenWhisk and OpenServerless ActionLoop Proxy 2: starting
2019/04/08 07:58:00 compiler: /proxy/bin/compile
2019/04/08 07:58:00 it is source code
2019/04/08 07:58:00 compiling: ./action/16/src/exec main: hello
@@ -1464,7 +1464,7 @@ action/2/bin/main__.rb
</code></pre><h2 id=testing>Testing</h2><p>If we have reached this point in the tutorial, the runtime is able to
run and execute a simple test action. Now we need to validate the
runtime against a set of mandatory tests both locally and within an
-OpenWhisk and Nuvolaris staging environment. Additionally, we should
+OpenWhisk and OpenServerless staging environment. Additionally, we should
author and automate additional tests for language specific features and
styles.</p><p>The <code>starter kit</code> includes two handy <code>makefiles</code> that we can leverage
for some additional tests. In the next sections, we will show how to
@@ -1521,19 +1521,19 @@ public cloud. So as the last step before moving forward, let’s push the
image to Docker Hub with <code>make push</code>.</p><h3 id=testing-on-openwhisk-and-openserverless>Testing on OpenWhisk and OpenServerless</h3><p>To run this test you need to configure access to OpenWhisk and OpenServerless
with <code>ops</code>. A simple way is to get access is to register a free account
in the IBM Cloud but this works also with our own deployment of
-OpenWhisk and Nuvolaris.</p><p>Edit the Makefile as we did previously:</p><pre><code>IMG=actionloop-demo-ruby-v2.6:latest
+OpenWhisk and OpenServerless.</p><p>Edit the Makefile as we did previously:</p><pre><code>IMG=actionloop-demo-ruby-v2.6:latest
ACT=hello-demo-ruby
PREFIX=docker.io/<docker username>
</code></pre><p>Also, change any reference to <code>hello.py</code> and <code>main.py</code> to <code>hello.rb</code> and
<code>main.rb</code>.</p><p>Once this is done, we can re-run the tests we executed locally on “the
real thing”.</p><p>Test single:</p><pre><code>$ make test-single
-nuv action update hello-demo-ruby hello.rb --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest --main hello
+ops action update hello-demo-ruby hello.rb --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest --main hello
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
@@ -1541,25 +1541,25 @@ nuv action invoke hello-demo-ruby -p name Mike -r
zip src.zip main.rb hello.rb
adding: main.rb (deflated 42%)
adding: hello.rb (deflated 42%)
-nuv action update hello-demo-ruby src.zip --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest
+ops action update hello-demo-ruby src.zip --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
</code></pre><p>Test binary ZIP:</p><pre><code>$ make test-bin-zip
docker run -i actionloop-demo-ruby-v2.6:latest -compile main <src.zip >bin.zip
-nuv action update hello-demo-ruby bin.zip --docker docker.io/actionloop/actionloop-demo-ruby-v2.6:latest
+ops action update hello-demo-ruby bin.zip --docker docker.io/actionloop/actionloop-demo-ruby-v2.6:latest
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
@@ -1599,8 +1599,8 @@ runtime.actionContainers.ActionLoopPythoRubyTests > runtime proxy should echo
BUILD SUCCESSFUL in 55s
</code></pre><p>Big congratulations are in order having reached this point successfully.
At this point, our runtime should be ready to run on any OpenWhisk and
-Nuvolaris platform and also can be submitted for consideration to be
-included in the Apache OpenWhisk and Nuvolaris project.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-aa85069ab6f58eef613cc4e73ddbe0c1>3.1.3 - Naming And Limits</h1><h1 id=system-details>System details</h1><p>The following sections provide more details about the OpenWhisk and
+OpenServerless platform and also can be submitted for consideration to be
+included in the Apache OpenWhisk and OpenServerless project.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-aa85069ab6f58eef613cc4e73ddbe0c1>3.1.3 - Naming And Limits</h1><h1 id=system-details>System details</h1><p>The following sections provide more details about the OpenWhisk and
OpenServerless system.</p><h2 id=entities>Entities</h2><h3 id=namespaces-and-packages>Namespaces and packages</h3><p>OpenWhisk and OpenServerless actions, triggers, and rules belong in a
namespace, and optionally a package.</p><p>Packages can contain actions and feeds. A package cannot contain another
package, so package nesting is not allowed. Also, entities do not have
@@ -1614,7 +1614,7 @@ with a <code>/</code>.</p><p>For convenience, the namespace can be left off if i
<em>default namespace</em>.</p><p>For example, consider a user whose default namespace is <code>/myOrg</code>.
Following are examples of the fully qualified names of a number of
entities and their aliases.</p><table><col style=width:20%><col style=width:20%><col style=width:20%><col style=width:20%><col style=width:20%><thead><tr class=header><th style=text-align:left>Fully qualified name</th><th style=text-align:left>Alias</th><th style=text-align:left>Namespace</th><th style=text-align:left>Package</th><th style=text-align:left>Name</th></tr></thead><tbody><tr class=odd><td style=text-align:left><p><code>/whisk.system/cloudant/read</code></p></td><td style=tex [...]
-Nuvolaris CLI, among other places.</p><h3 id=entity-names>Entity names</h3><p>The names of all entities, including actions, triggers, rules, packages,
+OpenServerless CLI, among other places.</p><h3 id=entity-names>Entity names</h3><p>The names of all entities, including actions, triggers, rules, packages,
and namespaces, are a sequence of characters that follow the following
format:</p><ul><li><p>The first character must be an alphanumeric character, or an
underscore.</p></li><li><p>The subsequent characters can be alphanumeric, spaces, or any of the
@@ -1674,7 +1674,7 @@ per namespace per minute</p></td><td style=text-align:left><p>per user</p></td><
may be fired in one minute windows.</p></li><li><p>A user cannot change this limit when creating the trigger.</p></li><li><p>A CLI or API call that exceeds this limit receives an error code
corresponding to HTTP status code <code>429: TOO MANY REQUESTS</code>.</p></li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-5b43e18f4cddb0aabe9809532e2cc2fe>3.1.4 - Rest API</h1><h1 id=using-rest-apis-with-openwhisk-and-nuvoopenserverlesslaris>Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris</h1><p>After your OpenWhisk and OpenServerlesss environment is enabled, you can use
it with your web apps or mobile apps with REST API calls.</p><p>For more details about the APIs for actions, activations, packages,
-rules, and triggers, see the <a href="http://petstore.swagger.io/?url=https://raw.githubusercontent.com/openwhisk/openwhisk/master/core/controller/src/main/resources/apiv1swagger.json">OpenWhisk and Nuvolaris API
+rules, and triggers, see the <a href="http://petstore.swagger.io/?url=https://raw.githubusercontent.com/openwhisk/openwhisk/master/core/controller/src/main/resources/apiv1swagger.json">OpenWhisk and OpenServerless API
documentation</a>.</p><p>All the capabilities in the system are available through a REST API.
There are collection and entity endpoints for actions, triggers, rules,
packages, activations, and namespaces.</p><p>These are the collection endpoints:</p><pre><code>https://$APIHOST/api/v1/namespaces
@@ -1702,7 +1702,7 @@ enable or disable rules.</p><p>All APIs are protected with HTTP Basic authentica
authentication. The Basic authentication credentials are in the <code>AUTH</code>
property in your <code>~/.nuvprops</code> file, delimited by a colon. You can also
retrieve these credentials using the CLI running
-<code>nuv property get --auth</code>.</p><p>The following is an example that uses the <a href=https://curl.haxx.se>cURL</a>
+<code>ops property get --auth</code>.</p><p>The following is an example that uses the <a href=https://curl.haxx.se>cURL</a>
command tool to get the list of all packages in the <code>whisk.system</code>
namespace:</p><pre><code>curl -u USERNAME:PASSWORD https://$APIHOST/api/v1/namespaces/whisk.system/packages
@@ -1732,9 +1732,9 @@ allowed (that is, Access-Control-Allow-Methods is
<code>Authorization, Origin, X-Requested-With, Content-Type, Accept, User-Agent</code>.</p><p><strong>Attention:</strong> Because OpenWhisk and OpenServerless currently supports only
one key per namespace, it is not recommended to use CORS beyond simple
experiments. Use <a href=/docs/reference/references/rest_api/#webactions.adoc>Web Actions</a> to expose your actions
-to the public and not use the OpenWhisk and Nuvolaris authorization key
+to the public and not use the OpenWhisk and OpenServerless authorization key
for client applications that require CORS.</p><h2 id=using-the-cli-verbose-mode>Using the CLI verbose mode</h2><p>The OpenWhisk and OpenServerless CLI is an interface to the OpenWhisk and
-Nuvolaris REST API. You can run the CLI in verbose mode with the flag
+OpenServerless REST API. You can run the CLI in verbose mode with the flag
<code>-v</code>, this will print truncated information about the HTTP request and
response. To print all information use the flag <code>-d</code> for debug.</p><p><strong>Note:</strong> HTTP request and response bodies will only be truncated if
they exceed 1000 bytes.</p><p>Let’s try getting the namespace value for the current user.</p><pre><code>ops namespace list -v
@@ -1747,7 +1747,7 @@ Req Headers
"Basic XXXYYYY"
],
"User-Agent": [
- "OpenWhisk and Nuvolaris-CLI/1.0 (2017-08-10T20:09:30+00:00)"
+ "OpenWhisk and OpenServerless-CLI/1.0 (2017-08-10T20:09:30+00:00)"
]
}
RESPONSE:Got response with code 200
@@ -1767,7 +1767,7 @@ the HTTP request, it performs a HTTP method <code>GET</code> on the URL
Authorization header <code>Basic XXXYYYY</code>. Notice that the authorization
value is your base64-encoded OpenWhisk and OpenServerless authorization
string. The response is of content type <code>application/json</code>.</p><h2 id=actions>Actions</h2><p><strong>Note:</strong> In the examples that follow, <code>$AUTH</code> and <code>$APIHOST</code> represent
-environment variables set respectively to your OpenWhisk and Nuvolaris
+environment variables set respectively to your OpenWhisk and OpenServerless
authorization key and API host.</p><p>To create or update an action send a HTTP request with method <code>PUT</code> on
the the actions collection. For example, to create a <code>nodejs:6</code> action
with the name <code>hello</code> using a single file content use the following:</p><pre><code>curl -u $AUTH -d '{"namespace":"_","name":"hello","exec":{"kind":"nodejs:6","code":"function main(params) { return {payload:\"Hello \"+params.name}}"}}' -X PUT -H "Content-Type: application/json" https://$APIHOST/api/v1/namespaces/_/actions/hello?overwrite=true
@@ -1824,7 +1824,7 @@ on the action</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/a
-X PUT -H "Content-Type: application/json" \
-d '{"namespace":"_","name":"hello","exec":{"kind":"nodejs:6","code":"function main(params) { return {payload:\"Hello \"+params.name}}"},"annotations":[{"key":"web-export","value":true},{"key":"raw-http","value":false},{"key":"final","value":true}]}'
</code></pre><p>You can now invoke this action as a public URL with no OpenWhisk and
-Nuvolaris authorization. Try invoking using the web action public URL
+OpenServerless authorization. Try invoking using the web action public URL
including an optional extension such as <code>.json</code> or <code>.http</code> for example
at the end of the URL.</p><pre><code>curl https://$APIHOST/api/v1/web/john@example.com_dev/default/hello.json?name=John
@@ -1834,7 +1834,7 @@ at the end of the URL.</p><pre><code>curl https://$APIHOST/api/v1/web/john@examp
</code></pre><p>Note that this example source code will not work with <code>.http</code>, see <a href=webactions.md>web
actions</a> documentation on how to modify.</p><h2 id=sequences>Sequences</h2><p>To create an action sequence, you need to create it by providing the
names of the actions that compose the sequence in the desired order, so
-the output from the first action is passed as input to the next action.</p><p>$ nuv action create sequenceAction –sequence
+the output from the first action is passed as input to the next action.</p><p>$ ops action create sequenceAction –sequence
/whisk-system/utils/split,/whisk-system/utils/sort</p><p>Create a sequence with the actions <code>/whisk-system/utils/split</code> and
<code>/whisk-system/utils/sort</code>.</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/actions/sequenceAction?overwrite=true \
-X PUT -H "Content-Type: application/json" \
@@ -1987,8 +1987,8 @@ object providing a new activation context and the input parameters for
the function. There may be many activations of the same function against
the same proxy (viz. container). Currently, the activations are
guaranteed not to overlap — that is, at any given time, there is at most
-one request to <code>/run</code> from the OpenWhisk and Nuvolaris platform.</p><p>The route must accept a JSON object and respond with a JSON object,
-otherwise the OpenWhisk and Nuvolaris platform will treat the activation
+one request to <code>/run</code> from the OpenWhisk and OpenServerless platform.</p><p>The route must accept a JSON object and respond with a JSON object,
+otherwise the OpenWhisk and OpenServerless platform will treat the activation
as a failure and proceed to destroy the container. The JSON object
provided by the platform follows the following schema:</p><pre><code>{
"value": JSON,
@@ -2001,14 +2001,14 @@ provided by the platform follows the following schema:</p><pre><code>{
"deadline": Number
}
</code></pre><ul><li><p><code>value</code> is a JSON object and contains all the parameters for the
-function activation.</p></li><li><p><code>namespace</code> is the OpenWhisk and Nuvolaris namespace for the action
+function activation.</p></li><li><p><code>namespace</code> is the OpenWhisk and OpenServerless namespace for the action
(e.g., <code>whisk-system</code>).</p></li><li><p><code>action_name</code> is the <a href=reference.md#fully-qualified-names>fully qualified
name</a> of the action.</p></li><li><p><code>activation_id</code> is a unique ID for this activation.</p></li><li><p><code>transaction_id</code> is a unique ID for the request of which this
activation is part of.</p></li><li><p><code>deadline</code> is the deadline for the function.</p></li><li><p><code>api_key</code> is the API key used to invoke the action.</p></li></ul><p>The <code>value</code> is the function parameters. The rest of the properties
become part of the activation context which is a set of environment
variables constructed by capitalizing each of the property names, and
prefixing the result with <code>__OW_</code>. Additionally, the context must define
-<code>__OW_API_HOST</code> whose value is the OpenWhisk and Nuvolaris API host.
+<code>__OW_API_HOST</code> whose value is the OpenWhisk and OpenServerless API host.
This value is currently provided as an environment variable defined at
container startup time and hence already available in the context.</p><p><strong>Successful activation:</strong> The route must respond with <code>200 OK</code> if the
activation is successful and the function has produced a JSON object as
@@ -2017,7 +2017,7 @@ activation</a>.</p><p><strong>Failed activation:</strong> Any response other tha
activation error. The response from the handler must be a JSON object
with a single field called <code>error</code> describing the failure. The value of
the error field may be any valid JSON value. Should the proxy fail to
-respond with a JSON object, the OpenWhisk and Nuvolaris platform will
+respond with a JSON object, the OpenWhisk and OpenServerless platform will
treat the failure as an uncaught exception. These two failures modes are
distinguished by the value of the <code>response.status</code> in the activation
record which is <code>application error</code> if the proxy returned an <code>error</code>
@@ -2059,12 +2059,12 @@ action.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-
</span></span><span style=display:flex><span> <span style=color:#204a87;font-weight:700>return</span> <span style=color:#000;font-weight:700>{</span>
</span></span><span style=display:flex><span> <span style=color:#4e9a06>'body'</span><span style=color:#000;font-weight:700>:</span> <span style=color:#4e9a06>'action invoked'</span>
</span></span><span style=display:flex><span> <span style=color:#000;font-weight:700>}</span>
-</span></span></code></pre></div><p>abd save it to a file called <code>scheduled-action.py</code></p><p>To deploy the action and instruct OpenServerless to execute it every 30 minutes, issue the following command:</p><p><code>ops action create scheduled-action scheduled-action.py -a cron "*/30 * * * *"</code></p><p>So you can create the action in the usual way and at the end add -a cron yourCronExpression.</p><h1 id=how-to-deploy-a-one-shot-execution-action>How to Deploy a One-Shot Execu [...]
+</span></span></code></pre></div><p>abd save it to a file called <code>scheduled-action.py</code></p><p>To deploy the action and instruct OpenServerless to execute it every 30 minutes, issue the following command:</p><p><code>ops action create scheduled-action scheduled-action.py -a cron "*/30 * * * *"</code></p><p>So you can create the action in the usual way and at the end add -a cron yourCronExpression.</p><h1 id=how-to-deploy-a-one-shot-execution-action>How to Deploy a One-Shot Execu [...]
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>[</span>
</span></span><span style=display:flex><span> <span style=color:#4e9a06>"2024-03-08T07:28:02.050739962Z stdout: Hello from a scheduled action"</span>
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>]</span>
</span></span></code></pre></div><h1 id=remarks>Remarks</h1><p>The Scheduler executes the action according to the following rules:</p><p>Actions are called in a non-blocking fashion. To verify execution and logs, use the command <code>ops activation list</code>.
-Actions are invoked without any parameters. It is advised to deploy actions with self-contained parameters.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-9a9f38e443de2df9046eecaddcd64dcb>3.2 - Entities</h1><p>You can find more informations about Nuvolaris and OpenWhisk entities
+Actions are invoked without any parameters. It is advised to deploy actions with self-contained parameters.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-9a9f38e443de2df9046eecaddcd64dcb>3.2 - Entities</h1><p>You can find more informations about OpenServerless and OpenWhisk entities
here:</p><ul><li><p><a href=/docs/reference/entities/#actions.adoc>Actions</a></p></li><li><p><a href=/docs/reference/entities/#parameters.adoc>Parameters</a></p></li><li><p><a href=/docs/reference/entities/#annotations.adoc>Annotations</a></p></li><li><p><a href=/docs/reference/entities/#scheduler.adoc>Scheduler</a></p></li><li><p><a href=/docs/reference/entities/#webactions.adoc>Web Actions</a></p></li><li><p><a href=/docs/reference/entities/#packages.adoc>Packages</a></p></li><li><p>< [...]
OpenServerless platform. For example, an action can be used to detect
the faces in an image, respond to a database change, respond to an API
@@ -2120,10 +2120,10 @@ requested with the annotation explicitly
the same as the namespace for the action).</p></li><li><p><code>__OW_ACTION_NAME</code> the fully qualified name of the running action.</p></li><li><p><code>__OW_ACTION_VERSION</code> the internal version number of the running
action.</p></li><li><p><code>__OW_ACTIVATION_ID</code> the activation id for this running action
instance.</p></li><li><p><code>__OW_DEADLINE</code> the approximate time when this action will have
-consumed its entire duration quota (measured in epoch milliseconds).</p></li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-0fbd1ebffcee5d3c07d1d8080f65183d>3.2.2 - Web Actions</h1><h1 id=web-actions>Web Actions</h1><p>Web actions are OpenWhisk and Nuvolaris actions annotated to quickly
+consumed its entire duration quota (measured in epoch milliseconds).</p></li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-0fbd1ebffcee5d3c07d1d8080f65183d>3.2.2 - Web Actions</h1><h1 id=web-actions>Web Actions</h1><p>Web actions are OpenWhisk and OpenServerless actions annotated to quickly
enable you to build web based applications. This allows you to program
backend logic which your web application can access anonymously without
-requiring an OpenWhisk and Nuvolaris authentication key. It is up to the
+requiring an OpenWhisk and OpenServerless authentication key. It is up to the
action developer to implement their own desired authentication and
authorization (i.e. OAuth flow).</p><p>Web action activations will be associated with the user that created the
action. This actions defers the cost of an action activation from the
@@ -2137,13 +2137,13 @@ function main({name}) {
}
</code></pre><p>You may create a <em>web action</em> <code>hello</code> in the package <code>demo</code> for the
namespace <code>guest</code> using the CLI’s <code>--web</code> flag with a value of <code>true</code> or
-<code>yes</code>:</p><pre><code>$ nuv package create demo
+<code>yes</code>:</p><pre><code>$ ops package create demo
ok: created package demo
-$ nuv action create demo/hello hello.js --web true
+$ ops action create demo/hello hello.js --web true
ok: created action demo/hello
-$ nuv action get demo/hello --url
+$ ops action get demo/hello --url
ok: got action hello
https://${APIHOST}/api/v1/web/guest/demo/hello
</code></pre><p>Using the <code>--web</code> flag with a value of <code>true</code> or <code>yes</code> allows an action
@@ -2202,13 +2202,13 @@ the body may be any allowed JSON value. The default content-type may be
omitted from the headers.</p><p>It is important to be aware of the <a href=/docs/reference/entities/webactions/#reference.adoc>response size
limit</a> for actions since a response that exceeds the
predefined system limits will fail. Large objects should not be sent
-inline through OpenWhisk and Nuvolaris, but instead deferred to an
-object store, for example.</p><h2 id=handling-http-requests-with-actions>Handling HTTP requests with actions</h2><p>An OpenWhisk and Nuvolaris action that is not a web action requires both
+inline through OpenWhisk and OpenServerless, but instead deferred to an
+object store, for example.</p><h2 id=handling-http-requests-with-actions>Handling HTTP requests with actions</h2><p>An OpenWhisk and OpenServerless action that is not a web action requires both
authentication and must respond with a JSON object. In contrast, web
actions may be invoked without authentication, and may be used to
implement HTTP handlers that respond with <em>headers</em>, <em>statusCode</em>, and
<em>body</em> content of different types. The web action must still return a
-JSON object, but the OpenWhisk and Nuvolaris system (namely the
+JSON object, but the OpenWhisk and OpenServerless system (namely the
<code>controller</code>) will treat a web action differently if its result includes
one or more of the following as top level JSON properties:</p><ol><li><p><code>headers</code>: a JSON object where the keys are header-names and the
values are string, number, or boolean values for those headers
@@ -2229,7 +2229,7 @@ and decode the string using a base64 decoder as needed. Should the body
fail to decoded correctly, an error is returned to the caller.</p><h2 id=http-context>HTTP Context</h2><p>All web actions, when invoked, receives additional HTTP request details
as parameters to the action input argument. They are:</p><ol><li><p><code>__ow_method</code> (type: string): the HTTP method of the request.</p></li><li><p><code>__ow_headers</code> (type: map string to string): the request headers.</p></li><li><p><code>__ow_path</code> (type: string): the unmatched path of the request
(matching stops after consuming the action extension).</p></li><li><p><code>__ow_user</code> (type: string): the namespace identifying the OpenWhisk
-and Nuvolaris authenticated subject.</p></li><li><p><code>__ow_body</code> (type: string): the request body entity, as a base64
+and OpenServerless authenticated subject.</p></li><li><p><code>__ow_body</code> (type: string): the request body entity, as a base64
encoded string when content is binary or JSON object/array, or plain
string otherwise.</p></li><li><p><code>__ow_query</code> (type: string): the query parameters from the request
as an unparsed string.</p></li></ol><p>A request may not override any of the named <code>__ow_</code> parameters above;
@@ -2356,7 +2356,7 @@ shown above.</p><pre><code>$ curl https://${APIHOST}/api/v1/web/guest/demo/hello
the absence of an extension assumes <code>.http</code> as the default. The fully
qualified name of the action must include its package name, which is
<code>default</code> if the action is not in a named package.</p><h2 id=protected-parameters>Protected parameters</h2><p>Action parameters are protected and treated as immutable. Parameters are
-automatically finalized when enabling web actions.</p><pre><code>$ nuv action create /guest/demo/hello hello.js \
+automatically finalized when enabling web actions.</p><pre><code>$ ops action create /guest/demo/hello hello.js \
--parameter name Jane \
--web true
</code></pre><p>The result of these changes is that the <code>name</code> is bound to <code>Jane</code> and
@@ -2368,7 +2368,7 @@ annotation</a> to
secure the web action. When the <code>require-whisk-auth</code> annotation is set
to <code>true</code>, the action will authenticate the invocation request’s Basic
Authorization credentials to confirm they represent a valid OpenWhisk
-and Nuvolaris identity. When set to a number or a case-sensitive string,
+and OpenServerless identity. When set to a number or a case-sensitive string,
the action’s invocation request must include a <code>X-Require-Whisk-Auth</code>
header having this same value. Secured web actions will return a
<code>Not Authorized</code> when credential validation fails.</p><p>Alternatively, use the <code>--web-secure</code> flag to automatically set the
@@ -2376,15 +2376,15 @@ header having this same value. Secured web actions will return a
generated as the <code>require-whisk-auth</code> annotation value. When set to
<code>false</code> the <code>require-whisk-auth</code> annotation is removed. When set to any
other value, that value is used as the <code>require-whisk-auth</code> annotation
-value.</p><pre><code>nuv action update /guest/demo/hello hello.js --web true --web-secure my-secret
-</code></pre><p>or</p><pre><code>nuv action update /guest/demo/hello hello.js --web true -a require-whisk-auth my-secret
+value.</p><pre><code>ops action update /guest/demo/hello hello.js --web true --web-secure my-secret
+</code></pre><p>or</p><pre><code>ops action update /guest/demo/hello hello.js --web true -a require-whisk-auth my-secret
curl https://${APIHOST}/api/v1/web/guest/demo/hello.json?name=Jane -X GET -H "X-Require-Whisk-Auth: my-secret"
</code></pre><p>It’s important to note that the owner of the web action owns all of the
web action’s activations records and will incur the cost of running the
action in the system regardless of how the action was invoked.</p><h2 id=disabling-web-actions>Disabling web actions</h2><p>To disable a web action from being invoked via web API
(<code>https://APIHOST/api/v1/web/</code>), pass a value of <code>false</code> or <code>no</code> to the
-<code>--web</code> flag while updating an action with the CLI.</p><pre><code>nuv action update /guest/demo/hello hello.js --web false
+<code>--web</code> flag while updating an action with the CLI.</p><pre><code>ops action update /guest/demo/hello hello.js --web false
</code></pre><h2 id=raw-http-handling>Raw HTTP handling</h2><p>A web action may elect to interpret and process an incoming HTTP body
directly, without the promotion of a JSON object to first class
properties available to the action input (e.g., <code>args.name</code> vs parsing
@@ -2409,9 +2409,9 @@ parameters and as JSON value in the HTTP request body:</p><pre><code>$ curl http
}
}
</code></pre><h3 id=enabling-raw-http-handling>Enabling raw HTTP handling</h3><p>Raw HTTP web actions are enabled via the <code>--web</code> flag using a value of
-<code>raw</code>.</p><pre><code>nuv action create /guest/demo/hello hello.js --web raw
+<code>raw</code>.</p><pre><code>ops action create /guest/demo/hello hello.js --web raw
</code></pre><h3 id=disabling-raw-http-handling>Disabling raw HTTP handling</h3><p>Disabling raw HTTP can be accomplished by passing a value of <code>false</code> or
-<code>no</code> to the <code>--web</code> flag.</p><pre><code>nuv update create /guest/demo/hello hello.js --web false
+<code>no</code> to the <code>--web</code> flag.</p><pre><code>ops update create /guest/demo/hello hello.js --web false
</code></pre><h3 id=decoding-binary-body-content-from-base64>Decoding binary body content from Base64</h3><p>When using raw HTTP handling, the <code>__ow_body</code> content will be encoded in
Base64 when the request content-type is binary. Below are functions
demonstrating how to decode the body content in Node, Python, and PHP.
@@ -2434,7 +2434,7 @@ function main(array $args) : array
return ["body" => $decoded];
}
</code></pre><p>As an example, save the Node function as <code>decode.js</code> and execute the
-following commands:</p><pre><code>$ nuv action create decode decode.js --web raw
+following commands:</p><pre><code>$ ops action create decode decode.js --web raw
ok: created action decode
$ curl -k -H "content-type: application" -X POST -d "Decoded body" https://${APIHOST}/api/v1/web/guest/default/decodeNode.json
{
@@ -2467,7 +2467,7 @@ OPTIONS requests.</p><pre><code>function main(params) {
}
}
</code></pre><p>Save the above function to <code>custom-options.js</code> and execute the following
-commands:</p><pre><code>$ nuv action create custom-option custom-options.js --web true -a web-custom-options true
+commands:</p><pre><code>$ ops action create custom-option custom-options.js --web true -a web-custom-options true
$ curl https://${APIHOST}/api/v1/web/guest/default/custom-options.http -kvX OPTIONS
< HTTP/1.1 200 OK
< Server: nginx/1.11.13
@@ -2485,7 +2485,7 @@ web action through your package bindings, then you should clone-and-own
the package instead.</p><p>Action parameters are inherited from its package, and the binding if
there is one. You can make package parameters
<a href=/docs/reference/entities/webactions/#annotations.adoc#protected-parameters>immutable</a> by defining their
-values through a package binding.</p><h2 id=error-handling>Error Handling</h2><p>When an OpenWhisk and Nuvolaris action fails, there are two different
+values through a package binding.</p><h2 id=error-handling>Error Handling</h2><p>When an OpenWhisk and OpenServerless action fails, there are two different
failure modes. The first is known as an <em>application error</em> and is
analogous to a caught exception: the action returns a JSON object
containing a top level <code>error</code> property. The second is a <em>developer
@@ -2521,11 +2521,11 @@ with the following content:</li></ol><pre><code>function main(params) {
}
</code></pre><p>The input parameters are passed as a JSON object parameter to the <code>main</code>
function. Notice how the <code>name</code> and <code>place</code> parameters are retrieved
-from the <code>params</code> object in this example.</p><ol><li>Update the action so it is ready to use:</li></ol><pre><code>nuv action update hello hello.js
+from the <code>params</code> object in this example.</p><ol><li>Update the action so it is ready to use:</li></ol><pre><code>ops action update hello hello.js
</code></pre><ol><li>Parameters can be provided explicitly on the command-line, or by
supplying a file containing the desired parameters</li></ol><p>To pass parameters directly through the command-line, supply a key/value
pair to the <code>--param</code> flag:
-<code>nuv action invoke --result hello --param name Dorothy --param place Kansas</code></p><p>This produces the result:</p><pre><code>{
+<code>ops action invoke --result hello --param name Dorothy --param place Kansas</code></p><p>This produces the result:</p><pre><code>{
"payload": "Hello, Dorothy from Kansas"
}
</code></pre><p>Notice the use of the <code>--result</code> option: it implies a blocking
@@ -2538,7 +2538,7 @@ structured object. For example, if we update our hello action to:</p><pre><code>
}
</code></pre><p>Now the action expects a single <code>person</code> parameter to have fields <code>name</code>
and <code>place</code>. If we invoke the action with a single <code>person</code> parameter
-that is valid JSON:</p><pre><code>nuv action invoke --result hello -p person '{"name": "Dorothy", "place": "Kansas"}'
+that is valid JSON:</p><pre><code>ops action invoke --result hello -p person '{"name": "Dorothy", "place": "Kansas"}'
</code></pre><p>The result is the same because the CLI automatically parses the <code>person</code>
parameter value into the structured object that the action now expects:
<code>json { "payload": "Hello, Dorothy from Kansas" }</code></p><h1 id=setting-default-parameters-on-an-action>Setting default parameters on an action</h1><p>Actions can be invoked with multiple named parameters. Recall that the
@@ -2549,8 +2549,8 @@ parameter so that the action defaults to the place “Kansas”:</p><ol><li>Upda
values, or by passing a file that contains the parameters to
<code>--param-file</code> (for examples of using files, see the section on
<a href=/docs/reference/entities/parameters/##working-with-parameter-files>working with parameter files</a>).</li></ol><p>To specify default parameters explicitly on the command-line, provide a
-key/value pair to the <code>param</code> flag:</p><pre><code>nuv action update hello --param place Kansas
-</code></pre><ol><li>Invoke the action, passing only the <code>name</code> parameter this time.</li></ol><pre><code>nuv action invoke --result hello --param name Dorothy
+key/value pair to the <code>param</code> flag:</p><pre><code>ops action update hello --param place Kansas
+</code></pre><ol><li>Invoke the action, passing only the <code>name</code> parameter this time.</li></ol><pre><code>ops action invoke --result hello --param name Dorothy
{
"payload": "Hello, Dorothy from Kansas"
@@ -2558,7 +2558,7 @@ key/value pair to the <code>param</code> flag:</p><pre><code>nuv action update h
</code></pre><p>Notice that you did not need to specify the <code>place</code> parameter when you
invoked the action. Bound parameters can still be overwritten by
specifying the parameter value at invocation time.</p><ol><li>Invoke the action, passing both <code>name</code> and <code>place</code> values, and
-observe the output:</li></ol><pre><code>nuv action invoke --result hello --param name Dorothy --param place "Washington, DC"
+observe the output:</li></ol><pre><code>ops action invoke --result hello --param name Dorothy --param place "Washington, DC"
{
"payload": "Hello, Dorothy from Washington, DC"
@@ -2567,13 +2567,13 @@ observe the output:</li></ol><pre><code>nuv action invoke --result hello --param
is overridden by a parameter that was supplied when invoking the action.</p><h1 id=setting-default-parameters-on-a-package>Setting default parameters on a package</h1><p>Parameters can be set at the package level, and these will serve as
default parameters for actions unless:</p><ul><li><p>The action itself has a default parameter.</p></li><li><p>The action has a parameter supplied at invoke time, which will
always be the “winner” where more than one parameter is available.</p></li></ul><p>The following example sets a default parameter of <code>name</code> on the <code>MyApp</code>
-package and shows an action making use of it.</p><ol><li>Create a package with a parameter set:</li></ol><pre><code>nuv package update MyApp --param name World
+package and shows an action making use of it.</p><ol><li>Create a package with a parameter set:</li></ol><pre><code>ops package update MyApp --param name World
</code></pre><ol><li>Create an action in this package:</li></ol><pre><code> function main(params) {
return {payload: "Hello, " + params.name};
}
-nuv action update MyApp/hello hello.js
-</code></pre><ol><li>Invoke the action, and observe the default package parameter in use:</li></ol><pre><code>nuv action invoke --result MyApp/hello
+ops action update MyApp/hello hello.js
+</code></pre><ol><li>Invoke the action, and observe the default package parameter in use:</li></ol><pre><code>ops action invoke --result MyApp/hello
{
"payload": "Hello, World"
@@ -2585,39 +2585,39 @@ creating/updating them, and when invoking actions.</p><ol><li>As an example, con
earlier. Using <code>hello.js</code> with this content:</li></ol><pre><code>function main(params) {
return {payload: 'Hello, ' + params.name + ' from ' + params.place};
}
-</code></pre><ol><li>Update the action with the updated contents of <code>hello.js</code>:</li></ol><pre><code>nuv action update hello hello.js
+</code></pre><ol><li>Update the action with the updated contents of <code>hello.js</code>:</li></ol><pre><code>ops action update hello hello.js
</code></pre><ol><li>Create a parameter file called <code>parameters.json</code> containing
JSON-formatted parameters:</li></ol><pre><code>{
"name": "Dorothy",
"place": "Kansas"
}
</code></pre><ol><li>Use the <code>parameters.json</code> filename when invoking the action, and
-observe the output</li></ol><pre><code>nuv action invoke --result hello --param-file parameters.json
+observe the output</li></ol><pre><code>ops action invoke --result hello --param-file parameters.json
{
"payload": "Hello, Dorothy from Kansas"
}
-</code></pre></div><div class=td-content style=page-break-before:always><h1 id=pg-1a65c20d0a8a7e9ac6e3d7ebb32079cf>3.2.4 - Packages</h1><h1 id=using-and-creating-packages>Using and creating packages</h1><p>In OpenWhisk and Nuvolaris, you can use packages to bundle together a
+</code></pre></div><div class=td-content style=page-break-before:always><h1 id=pg-1a65c20d0a8a7e9ac6e3d7ebb32079cf>3.2.4 - Packages</h1><h1 id=using-and-creating-packages>Using and creating packages</h1><p>In OpenWhisk and OpenServerless, you can use packages to bundle together a
set of related actions, and share them with others.</p><p>A package can include <em>actions</em> and <em>feeds</em>. - An action is a piece of
-code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant
+code that runs on OpenWhisk. For example, the Cloudant
package includes actions to read and write records to a Cloudant
database. - A feed is used to configure an external event source to fire
trigger events. For example, the Alarm package includes a feed that can
-fire a trigger at a specified frequency.</p><p>Every OpenWhisk and Nuvolaris entity, including packages, belongs in a
+fire a trigger at a specified frequency.</p><p>Every OpenWhisk and OpenServerless entity, including packages, belongs in a
<em>namespace</em>, and the fully qualified name of an entity is
<code>/namespaceName[/packageName]/entityName</code>. Refer to the <a href=/docs/reference/entities/packages/#reference.adoc#openwhisk-entities>naming
guidelines</a> for more information.</p><p>The following sections describe how to browse packages and use the
triggers and feeds in them. In addition, if you are interested in
contributing your own packages to the catalog, read the sections on
-creating and sharing packages.</p><h2 id=browsing-packages>Browsing packages</h2><p>Several packages are registered with OpenWhisk and Nuvolaris. You can
+creating and sharing packages.</p><h2 id=browsing-packages>Browsing packages</h2><p>Several packages are registered with OpenWhisk and OpenServerless. You can
get a list of packages in a namespace, list the entities in a package,
-and get a description of the individual entities in a package.</p><ol><li>Get a list of packages in the <code>/nuvolaris</code> namespace.</li></ol><pre><code>$ nuv package list /nuvolaris
+and get a description of the individual entities in a package.</p><ol><li>Get a list of packages in the <code>/nuvolaris</code> namespace.</li></ol><pre><code>$ ops package list /nuvolaris
packages
/nuvolaris/openai private
/nuvolaris/mastrogpt private
/nuvolaris/examples private
-</code></pre><ol><li>Get a list of entities in the <code>/nuvolaris/openai</code> package.</li></ol><pre><code>$ nuv package get --summary /nuvolaris/openai
+</code></pre><ol><li>Get a list of entities in the <code>/nuvolaris/openai</code> package.</li></ol><pre><code>$ ops package get --summary /nuvolaris/openai
package /nuvolaris/openai
(parameters: none defined)
action /nuvolaris/openai/models
@@ -2632,7 +2632,7 @@ means that they are immutable, and cannot be changed by the user. Any
entity listed under a package inherits specific bound parameters from
the package. To view the list of known parameters of an entity belonging
to a package, you will need to run a <code>get --summary</code> of the individual
-entity.</p><ol><li>Get a description of the <code>/nuvolaris/openai/chat</code> action.</li></ol><pre><code>$ nuv action get --summary /nuvolaris/openai/chat
+entity.</p><ol><li>Get a description of the <code>/nuvolaris/openai/chat</code> action.</li></ol><pre><code>$ ops action get --summary /nuvolaris/openai/chat
action /nuvolaris/openai/chat: Returns a result based on parameters OPENAI_API_HOST and OPENAI_API_KEY
(parameters: **OPENAI_API_HOST, **OPENAI_API_KEY)
</code></pre><p><em>NOTE</em>: Notice that the parameters listed for the action <code>read</code> were
@@ -2642,33 +2642,33 @@ listed under packages, run an individual get summary for the particular
entity.</p><h2 id=creating-a-package>Creating a package</h2><p>A package is used to organize a set of related actions and feeds. It
also allows for parameters to be shared across all entities in the
package.</p><p>To create a custom package with a simple action in it, try the following
-example:</p><ol><li>Create a package called <code>custom</code>.</li></ol><pre><code>$ nuv package create custom
+example:</p><ol><li>Create a package called <code>custom</code>.</li></ol><pre><code>$ ops package create custom
ok: created package custom
-</code></pre><ol><li>Get a summary of the package.</li></ol><pre><code>$ nuv package get --summary custom
+</code></pre><ol><li>Get a summary of the package.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom
(parameters: none defined)
</code></pre><p>Notice that the package is empty.</p><ol><li>Create a file called <code>identity.js</code> that contains the following
action code. This action returns all input parameters.</li></ol><pre><code>function main(args) { return args; }
-</code></pre><ol><li>Create an <code>identity</code> action in the <code>custom</code> package.</li></ol><pre><code>$ nuv action create custom/identity identity.js
+</code></pre><ol><li>Create an <code>identity</code> action in the <code>custom</code> package.</li></ol><pre><code>$ ops action create custom/identity identity.js
ok: created action custom/identity
</code></pre><p>Creating an action in a package requires that you prefix the action name
with a package name. Package nesting is not allowed. A package can
-contain only actions and can’t contain another package.</p><ol><li>Get a summary of the package again.</li></ol><pre><code>$ nuv package get --summary custom
+contain only actions and can’t contain another package.</p><ol><li>Get a summary of the package again.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom
(parameters: none defined)
action /myNamespace/custom/identity
(parameters: none defined)
-</code></pre><p>You can see the <code>custom/identity</code> action in your namespace now.</p><ol><li>Invoke the action in the package.</li></ol><pre><code>$ nuv action invoke --result custom/identity
+</code></pre><p>You can see the <code>custom/identity</code> action in your namespace now.</p><ol><li>Invoke the action in the package.</li></ol><pre><code>$ ops action invoke --result custom/identity
{}
</code></pre><p>You can set default parameters for all the entities in a package. You do
this by setting package-level parameters that are inherited by all
actions in the package. To see how this works, try the following
example:</p><ol><li>Update the <code>custom</code> package with two parameters: <code>city</code> and
-<code>country</code>.</li></ol><pre><code>$ nuv package update custom --param city Austin --param country USA
+<code>country</code>.</li></ol><pre><code>$ ops package update custom --param city Austin --param country USA
ok: updated package custom
</code></pre><ol><li>Display the parameters in the package and action, and see how the
<code>identity</code> action in the package inherits parameters from the
-package.</li></ol><pre><code>$ nuv package get custom
+package.</li></ol><pre><code>$ ops package get custom
ok: got package custom
...
"parameters": [
@@ -2683,7 +2683,7 @@ ok: got package custom
]
...
-$ nuv action get custom/identity
+$ ops action get custom/identity
ok: got action custom/identity
...
"parameters": [
@@ -2698,27 +2698,27 @@ ok: got action custom/identity
]
...
</code></pre><ol><li>Invoke the identity action without any parameters to verify that the
-action indeed inherits the parameters.</li></ol><pre><code>$ nuv action invoke --result custom/identity
+action indeed inherits the parameters.</li></ol><pre><code>$ ops action invoke --result custom/identity
{
"city": "Austin",
"country": "USA"
}
</code></pre><ol><li>Invoke the identity action with some parameters. Invocation
parameters are merged with the package parameters; the invocation
-parameters override the package parameters.</li></ol><pre><code>$ nuv action invoke --result custom/identity --param city Dallas --param state Texas
+parameters override the package parameters.</li></ol><pre><code>$ ops action invoke --result custom/identity --param city Dallas --param state Texas
{
"city": "Dallas",
"country": "USA",
"state": "Texas"
}
</code></pre><h2 id=sharing-a-package>Sharing a package</h2><p>After the actions and feeds that comprise a package are debugged and
-tested, the package can be shared with all OpenWhisk and Nuvolaris
+tested, the package can be shared with all OpenWhisk and OpenServerless
users. Sharing the package makes it possible for the users to bind the
package, invoke actions in the package, and author OpenWhisk and
-Nuvolaris rules and sequence actions.</p><ol><li>Share the package with all users:</li></ol><pre><code>$ nuv package update custom --shared yes
+OpenServerless rules and sequence actions.</p><ol><li>Share the package with all users:</li></ol><pre><code>$ ops package update custom --shared yes
ok: updated package custom
</code></pre><ol><li>Display the <code>publish</code> property of the package to verify that it is
-now true.</li></ol><pre><code>$ nuv package get custom
+now true.</li></ol><pre><code>$ ops package get custom
ok: got package custom
...
"publish": true,
@@ -2728,30 +2728,30 @@ package or directly invoking an action in it. Other users must know the
fully qualified names of the package to bind it or invoke actions in it.
Actions and feeds within a shared package are <em>public</em>. If the package
is private, then all of its contents are also private.</p><ol><li>Get a description of the package to show the fully qualified names
-of the package and action.</li></ol><pre><code>$ nuv package get --summary custom
+of the package and action.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom: Returns a result based on parameters city and country
(parameters: *city, *country)
action /myNamespace/custom/identity
(parameters: none defined)
</code></pre><p>In the previous example, you’re working with the <code>myNamespace</code>
-namespace, and this namespace appears in the fully qualified name.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-edfa631df9f2b93b7371eb7b774a35b8>3.2.5 - Feeds</h1><h1 id=implementing-feeds>Implementing feeds</h1><p>OpenWhisk and Nuvolaris support an open API, where any user can expose
+namespace, and this namespace appears in the fully qualified name.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-edfa631df9f2b93b7371eb7b774a35b8>3.2.5 - Feeds</h1><h1 id=implementing-feeds>Implementing feeds</h1><p>OpenWhisk and OpenServerless support an open API, where any user can expose
an event producer service as a <strong>feed</strong> in a <strong>package</strong>. This section
describes architectural and implementation options for providing your
-own feed.</p><p>This material is intended for advanced OpenWhisk and Nuvolaris users who
-intend to publish their own feeds. Most OpenWhisk and Nuvolaris users
+own feed.</p><p>This material is intended for advanced OpenWhisk and OpenServerless users who
+intend to publish their own feeds. Most OpenWhisk and OpenServerless users
can safely skip this section.</p><h1 id=feed-architecture>Feed Architecture</h1><p>There are at least 3 architectural patterns for creating a feed:
<strong>Hooks</strong>, <strong>Polling</strong> and <strong>Connections</strong>.</p><h2 id=hooks>Hooks</h2><p>In the <em>Hooks</em> pattern, we set up a feed using a
<a href=https://en.wikipedia.org/wiki/Webhook>webhook</a> facility exposed by
another service. In this strategy, we configure a webhook on an external
service to POST directly to a URL to fire a trigger. This is by far the
-easiest and most attractive option for implementing low-frequency feeds.</p><h2 id=polling>Polling</h2><p>In the <code>Polling</code> pattern, we arrange for an OpenWhisk and Nuvolaris
+easiest and most attractive option for implementing low-frequency feeds.</p><h2 id=polling>Polling</h2><p>In the <code>Polling</code> pattern, we arrange for an OpenWhisk and OpenServerless
<em>action</em> to poll an endpoint periodically to fetch new data. This
pattern is relatively easy to build, but the frequency of events will of
course be limited by the polling interval.</p><h2 id=connections>Connections</h2><p>In the <code>Connections</code> pattern, we stand up a separate service somewhere
that maintains a persistent connection to a feed source. The connection
based implementation might interact with a service endpoint via long
polling, or to set up a push notification.</p><h1 id=difference-between-feed-and-trigger>Difference between Feed and Trigger</h1><p>Feeds and triggers are closely related, but technically distinct
-concepts.</p><ul><li><p>OpenWhisk and Nuvolaris process <strong>events</strong> which flow into the
+concepts.</p><ul><li><p>OpenWhisk and OpenServerless process <strong>events</strong> which flow into the
system.</p></li><li><p>A <strong>trigger</strong> is technically a name for a class of events. Each
event belongs to exactly one trigger; by analogy, a trigger
resembles a <em>topic</em> in topic-based pub-sub systems. A <strong>rule</strong> <em>T →
@@ -2761,67 +2761,67 @@ A</em> means “whenever an event from trigger <em>T</em> arrives, invoke ac
creating, deleting, pausing, and resuming the stream of events which
comprise a feed. The feed action typically interacts with external
services which produce the events, via a REST API that manages
-notifications.</p></li></ul><h1 id=implementing-feed-actions>Implementing Feed Actions</h1><p>The <em>feed action</em> is a normal OpenWhisk and Nuvolaris <em>action</em>, but it
+notifications.</p></li></ul><h1 id=implementing-feed-actions>Implementing Feed Actions</h1><p>The <em>feed action</em> is a normal OpenWhisk and OpenServerless <em>action</em>, but it
should accept the following parameters: * <strong>lifecycleEvent</strong>: one of
‘CREATE’, ‘READ’, ‘UPDATE’, ‘DELETE’, ‘PAUSE’, or ‘UNPAUSE’. *
<strong>triggerName</strong>: the fully-qualified name of the trigger which contains
events produced from this feed. * <strong>authKey</strong>: the Basic auth
-credentials of the OpenWhisk and Nuvolaris user who owns the trigger
+credentials of the OpenWhisk and OpenServerless user who owns the trigger
just mentioned.</p><p>The feed action can also accept any other parameters it needs to manage
the feed. For example the cloudant changes feed action expects to
receive parameters including <em>`dbname’</em>, <em>`username’</em>, etc.</p><p>When the user creates a trigger from the CLI with the <strong>–feed</strong>
parameter, the system automatically invokes the feed action with the
appropriate parameters.</p><p>For example, assume the user has created a <code>mycloudant</code> binding for the
<code>cloudant</code> package with their username and password as bound parameters.
-When the user issues the following command from the CLI:</p><p><code>nuv trigger create T --feed mycloudant/changes -p dbName myTable</code></p><p>then under the covers the system will do something equivalent to:</p><p><code>nuv action invoke mycloudant/changes -p lifecycleEvent CREATE -p triggerName T -p authKey <userAuthKey> -p password <password value from mycloudant binding> -p username <username value from mycloudant binding> -p dbName mytype</code></p><p>The feed action na [...]
+When the user issues the following command from the CLI:</p><p><code>ops trigger create T --feed mycloudant/changes -p dbName myTable</code></p><p>then under the covers the system will do something equivalent to:</p><p><code>ops action invoke mycloudant/changes -p lifecycleEvent CREATE -p triggerName T -p authKey <userAuthKey> -p password <password value from mycloudant binding> -p username <username value from mycloudant binding> -p dbName mytype</code></p><p>The feed action na [...]
to take whatever action is necessary to set up a stream of events from
Cloudant, with the appropriate configuration, directed to the trigger
<em>T</em>.</p><p>For the Cloudant <em>changes</em> feed, the action happens to talk directly to
a <em>cloudant trigger</em> service we’ve implemented with a connection-based
-architecture. We’ll discuss the other architectures below.</p><p>A similar feed action protocol occurs for <code>nuv trigger delete</code>,
-<code>nuv trigger update</code> and <code>nuv trigger get</code>.</p><h1 id=implementing-feeds-with-hooks>Implementing Feeds with Hooks</h1><p>It is easy to set up a feed via a hook if the event producer supports a
+architecture. We’ll discuss the other architectures below.</p><p>A similar feed action protocol occurs for <code>ops trigger delete</code>,
+<code>ops trigger update</code> and <code>ops trigger get</code>.</p><h1 id=implementing-feeds-with-hooks>Implementing Feeds with Hooks</h1><p>It is easy to set up a feed via a hook if the event producer supports a
webhook/callback facility.</p><p>With this method there is <em>no need</em> to stand up any persistent service
-outside of OpenWhisk and Nuvolaris. All feed management happens
-naturally though stateless OpenWhisk and Nuvolaris <em>feed actions</em>, which
+outside of OpenWhisk and OpenServerless. All feed management happens
+naturally though stateless OpenWhisk and OpenServerless <em>feed actions</em>, which
negotiate directly with a third part webhook API.</p><p>When invoked with <code>CREATE</code>, the feed action simply installs a webhook
for some other service, asking the remote service to POST notifications
-to the appropriate <code>fireTrigger</code> URL in OpenWhisk and Nuvolaris.</p><p>The webhook should be directed to send notifications to a URL such as:</p><pre><code>POST /namespaces/{namespace}/triggers/{triggerName}
+to the appropriate <code>fireTrigger</code> URL in OpenWhisk and OpenServerless.</p><p>The webhook should be directed to send notifications to a URL such as:</p><pre><code>POST /namespaces/{namespace}/triggers/{triggerName}
</code></pre><p>The form with the POST request will be interpreted as a JSON document
-defining parameters on the trigger event. OpenWhisk and Nuvolaris rules
+defining parameters on the trigger event. OpenWhisk and OpenServerless rules
pass these trigger parameters to any actions to fire as a result of the
-event.</p><h1 id=implementing-feeds-with-polling>Implementing Feeds with Polling</h1><p>It is possible to set up an OpenWhisk and Nuvolaris <em>action</em> to poll a
-feed source entirely within OpenWhisk and Nuvolaris, without the need to
+event.</p><h1 id=implementing-feeds-with-polling>Implementing Feeds with Polling</h1><p>It is possible to set up an OpenWhisk and OpenServerless <em>action</em> to poll a
+feed source entirely within OpenWhisk and OpenServerless, without the need to
stand up any persistent connections or external service.</p><p>For feeds where a webhook is not available, but do not need high-volume
or low latency response times, polling is an attractive option.</p><p>To set up a polling-based feed, the feed action takes the following
steps when called for <code>CREATE</code>:</p><ol><li><p>The feed action sets up a periodic trigger (<em>T</em>) with the desired
frequency, using the <code>whisk.system/alarms</code> feed.</p></li><li><p>The feed developer creates a <code>pollMyService</code> action which simply
polls the remote service and returns any new events.</p></li><li><p>The feed action sets up a <em>rule</em> <em>T → pollMyService</em>.</p></li></ol><p>This procedure implements a polling-based trigger entirely using
-OpenWhisk and Nuvolaris actions, without any need for a separate
+OpenWhisk and OpenServerless actions, without any need for a separate
service.</p><h1 id=implementing-feeds-via-connections>Implementing Feeds via Connections</h1><p>The previous 2 architectural choices are simple and easy to implement.
However, if you want a high-performance feed, there is no substitute for
-persistent connections and long-polling or similar techniques.</p><p>Since OpenWhisk and Nuvolaris actions must be short-running, an action
+persistent connections and long-polling or similar techniques.</p><p>Since OpenWhisk and OpenServerless actions must be short-running, an action
cannot maintain a persistent connection to a third party . Instead, we
-must stand up a separate service (outside of OpenWhisk and Nuvolaris)
+must stand up a separate service (outside of OpenWhisk and OpenServerless)
that runs all the time. We call these <em>provider services</em>. A provider
service can maintain connections to third party event sources that
support long polling or other connection-based notifications.</p><p>The provider service should provide a REST API that allows the OpenWhisk
-and Nuvolaris <em>feed action</em> to control the feed. The provider service
-acts as a proxy between the event provider and OpenWhisk and Nuvolaris –
+and OpenServerless <em>feed action</em> to control the feed. The provider service
+acts as a proxy between the event provider and OpenWhisk and OpenServerless –
when it receives events from the third party, it sends them on to
-OpenWhisk and Nuvolaris by firing a trigger.</p><p>The connection-based architecture is the highest performance option, but
+OpenWhisk and OpenServerless by firing a trigger.</p><p>The connection-based architecture is the highest performance option, but
imposes more overhead on operations compared to the polling and hook
-architectures.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-38495e8c2bc869b2620d6c789f0e418f>3.2.6 - Annotations</h1><h1 id=annotations>Annotations</h1><p>OpenWhisk and Nuvolaris actions, triggers, rules and packages
+architectures.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-38495e8c2bc869b2620d6c789f0e418f>3.2.6 - Annotations</h1><h1 id=annotations>Annotations</h1><p>OpenWhisk and OpenServerless actions, triggers, rules and packages
(collectively referred to as assets) may be decorated with
<code>annotations</code>. Annotations are attached to assets just like parameters
with a <code>key</code> that defines a name and <code>value</code> that defines the value. It
is convenient to set them from the command line interface (CLI) via
-<code>--annotation</code> or <code>-a</code> for short.</p><p>Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow
+<code>--annotation</code> or <code>-a</code> for short.</p><p>Rationale: Annotations were added to OpenWhisk and OpenServerless to allow
for experimentation without making changes to the underlying asset
schema. We had, until the writing of this document, deliberately not
defined what <code>annotations</code> are permitted. However as we start to use
annotations more heavily to impart semantic changes, it’s important that
we finally start to document them.</p><p>The most prevalent use of annotations to date is to document actions and
-packages. You’ll see many of the packages in the OpenWhisk and Nuvolaris
+packages. You’ll see many of the packages in the OpenWhisk and OpenServerless
catalog carry annotations such as a description of the functionality
offered by their actions, which parameters are required at package
binding time, and which are invoke-time parameters, whether a parameter
@@ -2829,7 +2829,7 @@ is a “secret” (e.g., password), or not. We have invented these as
needed, for example to allow for UI integration.</p><p>Here is a sample set of annotations for an <code>echo</code> action which returns
its input arguments unmodified (e.g.,
<code>function main(args) { return args }</code>). This action may be useful for
-logging input parameters for example as part of a sequence or rule.</p><pre><code>nuv action create echo echo.js \
+logging input parameters for example as part of a sequence or rule.</p><pre><code>ops action create echo echo.js \
-a description 'An action which returns its input. Useful for logging input to enable debug/replay.' \
-a parameters '[{ "required":false, "description": "Any JSON entity" }]' \
-a sampleInput '{ "msg": "Five fuzzy felines"}' \
@@ -2845,7 +2845,7 @@ may be used more broadly)</p></li></ul><p>The annotations are <em>not</em> check
annotations to infer if a composition of two actions into a sequence is
legal, for example, the system does not yet do that.</p><p>The following annotations on an action are available.</p><ul><li><code>provide-api-key</code>: This annotation may be attached to actions which
require an API key, for example to make REST API calls to the
-OpenWhisk and Nuvolaris host. For newly created actions, if not
+OpenWhisk and OpenServerless host. For newly created actions, if not
specified, it defaults to a false value. For existing actions, the
absence of this annotation, or its presence with a value that is not
<em>falsy</em> (i.e., a value that is different from zero, null, false, and
@@ -2858,7 +2858,7 @@ to <code>true</code> to have an affect. The annotations have no meaning otherwis
in the system. The annotations are:</p><ul><li><p><code>web-export</code>: Makes its corresponding action accessible to REST
calls <em>without</em> authentication. We call these <a href=/docs/reference/entities/annotations/#webactions.adoc><em>web
actions</em></a> because they allow one to use OpenWhisk
-and Nuvolaris actions from a browser for example. It is important to
+and OpenServerless actions from a browser for example. It is important to
note that the <em>owner</em> of the web action incurs the cost of running
them in the system (i.e., the <em>owner</em> of the action also owns the
activations record). The rest of the annotations described below
@@ -2885,12 +2885,12 @@ are:</p><ul><li><p><code>path</code>: the fully qualified path name of the actio
the activation. Note that if this activation was the result of an
action in a package binding, the path refers to the parent package.</p></li><li><p><code>binding</code>: the entity path of the package binding. Note that this is
only present for actions in a package binding.</p></li><li><p><code>kind</code>: the kind of action executed, and one of the support
-OpenWhisk and Nuvolaris runtime kinds.</p></li><li><p><code>limits</code>: the time, memory and log limits that this activation were
+OpenWhisk and OpenServerless runtime kinds.</p></li><li><p><code>limits</code>: the time, memory and log limits that this activation were
subject to.</p></li></ul><p>Additionally for sequence related activations, the system will generate
the following annotations:</p><ul><li><p><code>topmost</code>: this is only present for an outermost sequence action.</p></li><li><p><code>causedBy</code>: this is only present for actions that are contained in a
sequence.</p></li></ul><p>Lastly, and in order to provide you with some performance transparency,
activations also record:</p><ul><li><p><code>waitTime</code>: the time spent waiting in the internal OpenWhisk and
-Nuvolaris system. This is roughly the time spent between the
+OpenServerless system. This is roughly the time spent between the
controller receiving the activation request and when the invoker
provisioned a container for the action.</p></li><li><p><code>initTime</code>: the time spent initializing the function. If this value
is present, the action required initialization and represents a cold
@@ -3270,7 +3270,7 @@ then <a href=/docs/installation/prereq/server/generic/>configure it</a></p></li>
install <a href=/docs/installation/prereq/server/k3s/>K3S</a> or
<a href=/docs/installation/prereq/server/mk8s/>MicroK8S</a> in it.</p><p>Once you have configured you server, you can proceed
<a href=/docs/installation/configure/>configuring OpenServerless</a> for the installation.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-c8f8a7091cc35f968fc5e121e51c459b>4.3.2.1 - SSH and Sudo</h1><div class=lead>General prerequisites to install OpenServerless</div><h2 id=configure-a-generic-linux-server-to-install-openserverless>Configure a generic Linux server to install OpenServerless</h2><p>If you have access to a generic Linux server, to be able to install
-Nuvolaris it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
+OpenServerless it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
for information how to create a <a href=/docs/installation/prereq/server/generic/#sshkey>sshkey</a>,
<a href=/docs/installation/prereq/server/generic/#sudo>configure sudo</a> and <a href=/docs/installation/prereq/server/generic/#firewall>open the firewall</a></p><h3 id=sshkey>Installing a public SSH key</h3><p>To connect to a server without a password using <code>openssh</code> (used by the
installer), you need a couple of files called <strong>ssh keys</strong>.</p><p>You can generate them on the command line using this command:</p><pre><code>ssh-keygen
diff --git a/docs/cli/_print/index.html b/docs/cli/_print/index.html
index e6ae9d9..1977d50 100644
--- a/docs/cli/_print/index.html
+++ b/docs/cli/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/><link rel=alternate type=application/rss+xml href=/docs/cli/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=1 [...]
-<meta name=description content="An handy command line to interact with all parts of OpenServerless"><meta property="og:url" content="/docs/cli/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="CLI"><meta property="og:description" content="An handy command line to interact with all parts of OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="CLI"><meta itemprop=des [...]
+<meta name=description content="An handy command line to interact with all parts of OpenServerless"><meta property="og:url" content="/docs/cli/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="CLI"><meta property="og:description" content="An handy command line to interact with all parts of OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="CLI"><meta itemprop=des [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/>Return to the regular view of this page</a>.</p></div><h1 class=title>CLI</h1><div class=lead>An handy command line to interact with all parts of OpenServerless</div><ul><li>1: <a href=#pg-a59e9ad2a8fb11a85d8ebedec00ea6b6>Entities</a></li><ul><li>1.1: <a href=#pg-0f78024b5380f26a2900a3b24b8df6a2>Packages</a></li><ul></ul><li>1.2: <a href=#pg-92e5b80b2a52f86c8fa5eac178ced4d8>Actions</a></li><ul></ul><l [...]
you can <a href=/docs/installation/download/>download the CLI suitable for your platform from here, and
install it</a></p><h2 id=login-into-the-system>Login into the system</h2><p>To start working with you have to login in some OpenServerless
diff --git a/docs/cli/admin/_print/index.html b/docs/cli/admin/_print/index.html
index f4cfd00..f490ff9 100644
--- a/docs/cli/admin/_print/index.html
+++ b/docs/cli/admin/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/admin/><link rel=alternate type=application/rss+xml href=/docs/cli/admin/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180 [...]
-<meta name=description content="System administration"><meta property="og:url" content="/docs/cli/admin/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Administration"><meta property="og:description" content="System administration"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Administration"><meta itemprop=description content="System administration"><meta itemprop=dateMo [...]
+<meta name=description content="System administration"><meta property="og:url" content="/docs/cli/admin/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Administration"><meta property="og:description" content="System administration"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Administration"><meta itemprop=description content="System administration"><meta itemprop=dateMo [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/admin/>Return to the regular view of this page</a>.</p></div><h1 class=title>Administration</h1><div class=lead>System administration</div><ul></ul><div class=content><h2 id=administration>Administration</h2><p>If you are the administrator and you have access to the Kubernetes
cluster where <a href=/docs/installation/>OpenServerless is
installed</a> you can administer the
diff --git a/docs/cli/admin/index.html b/docs/cli/admin/index.html
index 61e3055..90d1416 100644
--- a/docs/cli/admin/index.html
+++ b/docs/cli/admin/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/admin/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/admin/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x [...]
-<meta name=description content="System administration"><meta property="og:url" content="/docs/cli/admin/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Administration"><meta property="og:description" content="System administration"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Administration"><meta itemprop=description content="System administration"><meta itemprop=dateMo [...]
+<meta name=description content="System administration"><meta property="og:url" content="/docs/cli/admin/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Administration"><meta property="og:description" content="System administration"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Administration"><meta itemprop=description content="System administration"><meta itemprop=dateMo [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -104,7 +104,7 @@ Options:
--postgres enable postgres
--storagequota=<quota>
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/assets/_print/index.html b/docs/cli/assets/_print/index.html
index 012f23c..2f2f39c 100644
--- a/docs/cli/assets/_print/index.html
+++ b/docs/cli/assets/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/assets/><link rel=alternate type=application/rss+xml href=/docs/cli/assets/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x1 [...]
-<meta name=description content="How to handle frontend deployment"><meta property="og:url" content="/docs/cli/assets/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Web Assets"><meta property="og:description" content="How to handle frontend deployment"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Web Assets"><meta itemprop=description content="How to handle frontend depl [...]
+<meta name=description content="How to handle frontend deployment"><meta property="og:url" content="/docs/cli/assets/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Web Assets"><meta property="og:description" content="How to handle frontend deployment"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Web Assets"><meta itemprop=description content="How to handle frontend depl [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/assets/>Return to the regular view of this page</a>.</p></div><h1 class=title>Web Assets</h1><div class=lead>How to handle frontend deployment</div><ul></ul><div class=content><h2 id=upload-web-assets>Upload Web Assets</h2><p>The <code>web</code> folder in the root of a project is used to deploy static
frontends. A static front-end is a collection of static asset under a
given folder that will be published in a web server under a path.</p><p>Every uses has associated a web accessible static area where you can
diff --git a/docs/cli/assets/index.html b/docs/cli/assets/index.html
index d598b90..aa8ac0c 100644
--- a/docs/cli/assets/index.html
+++ b/docs/cli/assets/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/assets/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/assets/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-18 [...]
-<meta name=description content="How to handle frontend deployment"><meta property="og:url" content="/docs/cli/assets/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Web Assets"><meta property="og:description" content="How to handle frontend deployment"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Web Assets"><meta itemprop=description content="How to handle frontend depl [...]
+<meta name=description content="How to handle frontend deployment"><meta property="og:url" content="/docs/cli/assets/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Web Assets"><meta property="og:description" content="How to handle frontend deployment"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Web Assets"><meta itemprop=description content="How to handle frontend depl [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -103,7 +103,7 @@ upload static assets.</p><p>You can upload a folder in this web area with</p><p>
--quiet Do not print anything to stdout.
--clean Remove all files from the web bucket instead.
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/debug/_print/index.html b/docs/cli/debug/_print/index.html
index 00b2df8..85da3d9 100644
--- a/docs/cli/debug/_print/index.html
+++ b/docs/cli/debug/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/debug/><link rel=alternate type=application/rss+xml href=/docs/cli/debug/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180 [...]
-<meta name=description content="Utilities to troubleshoot OpenServerless' cluster"><meta property="og:url" content="/docs/cli/debug/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Debugging"><meta property="og:description" content="Utilities to troubleshoot OpenServerless' cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Debugging"><meta itemprop=description content [...]
+<meta name=description content="Utilities to troubleshoot OpenServerless' cluster"><meta property="og:url" content="/docs/cli/debug/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Debugging"><meta property="og:description" content="Utilities to troubleshoot OpenServerless' cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Debugging"><meta itemprop=description content [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/debug/>Return to the regular view of this page</a>.</p></div><h1 class=title>Debugging</h1><div class=lead>Utilities to troubleshoot OpenServerless’ cluster</div><ul></ul><div class=content><p>The <code>ops debug</code> subcomand gives access to many useful debugging
utilities as follow:</p><p>You need access to the Kubernetes cluster where OpenServerless is
installed.</p><pre><code>ops debug: available subcommands:
diff --git a/docs/cli/debug/index.html b/docs/cli/debug/index.html
index 3361891..a4226a6 100644
--- a/docs/cli/debug/index.html
+++ b/docs/cli/debug/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/debug/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/debug/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x [...]
-<meta name=description content="Utilities to troubleshoot OpenServerless' cluster"><meta property="og:url" content="/docs/cli/debug/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Debugging"><meta property="og:description" content="Utilities to troubleshoot OpenServerless' cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Debugging"><meta itemprop=description content [...]
+<meta name=description content="Utilities to troubleshoot OpenServerless' cluster"><meta property="og:url" content="/docs/cli/debug/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Debugging"><meta property="og:description" content="Utilities to troubleshoot OpenServerless' cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Debugging"><meta itemprop=description content [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -114,7 +114,7 @@ the underlying Kubernetes cluster:</p><pre><code>ops debug kube: available subco
* users: show openserverless users custom resources
* wait: wait for a value matching the given jsonpath on the specific resources under the namespace openserverless
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/entities/_print/index.html b/docs/cli/entities/_print/index.html
index ad2ae48..aeeef21 100644
--- a/docs/cli/entities/_print/index.html
+++ b/docs/cli/entities/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/entities/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-1 [...]
-<meta name=description content="The parts that OpenServerless applications are made of"><meta property="og:url" content="/docs/cli/entities/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Entities"><meta property="og:description" content="The parts that OpenServerless applications are made of"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Entities"><meta itemprop=descript [...]
+<meta name=description content="The parts that OpenServerless applications are made of"><meta property="og:url" content="/docs/cli/entities/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Entities"><meta property="og:description" content="The parts that OpenServerless applications are made of"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Entities"><meta itemprop=descript [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/entities/>Return to the regular view of this page</a>.</p></div><h1 class=title>Entities</h1><div class=lead>The parts that OpenServerless applications are made of</div><ul><li>1: <a href=#pg-0f78024b5380f26a2900a3b24b8df6a2>Packages</a></li><ul></ul><li>2: <a href=#pg-92e5b80b2a52f86c8fa5eac178ced4d8>Actions</a></li><ul></ul><li>3: <a href=#pg-554923b69d6a963b7b804b6a9c9cbca1>Activations</a></li><ul>< [...]
manipulate either using a command line interface or programmatically
with code.</p><p>The command line interface is the <code>ops</code> command line tools, that can be
diff --git a/docs/cli/entities/actions/_print/index.html b/docs/cli/entities/actions/_print/index.html
index 9df05e4..ee9de5c 100644
--- a/docs/cli/entities/actions/_print/index.html
+++ b/docs/cli/entities/actions/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/entities/actions/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/actions/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/ap [...]
-<meta name=description content="Functions, the core of OpenServerless"><meta property="og:url" content="/docs/cli/entities/actions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Actions"><meta property="og:description" content="Functions, the core of OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Actions"><meta itemprop=description content="Functions, the [...]
+<meta name=description content="Functions, the core of OpenServerless"><meta property="og:url" content="/docs/cli/entities/actions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Actions"><meta property="og:description" content="Functions, the core of OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Actions"><meta itemprop=description content="Functions, the [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/entities/actions/>Return to the regular view of this page</a>.</p></div><h1 class=title>Actions</h1><div class=lead>Functions, the core of OpenServerless</div><ul></ul><div class=content><h2 id=actions>Actions</h2><p>An action can generally be considered as a function, a snippet of code,
or generally a method.</p><p>The <code>ops action</code> command is designed for managing actions, featuring
frequently utilized CRUD operations such as list, create, update, and
diff --git a/docs/cli/entities/actions/index.html b/docs/cli/entities/actions/index.html
index 6facd75..88b526c 100644
--- a/docs/cli/entities/actions/index.html
+++ b/docs/cli/entities/actions/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/entities/actions/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/actions/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons [...]
-<meta name=description content="Functions, the core of OpenServerless"><meta property="og:url" content="/docs/cli/entities/actions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Actions"><meta property="og:description" content="Functions, the core of OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Actions"><meta itemprop=description content="Functions, the [...]
+<meta name=description content="Functions, the core of OpenServerless"><meta property="og:url" content="/docs/cli/entities/actions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Actions"><meta property="og:description" content="Functions, the core of OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Actions"><meta itemprop=description content="Functions, the [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -139,7 +139,7 @@ delete them:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f
</span></span></code></pre></div><h2 id=conclusion>Conclusion</h2><p>Actions are a core part of our entities. A ops action is a
self-contained and executable unit of code deployed on the ops
serverless computing platform.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/entities/activations/_print/index.html b/docs/cli/entities/activations/_print/index.html
index a7a3025..c699d41 100644
--- a/docs/cli/entities/activations/_print/index.html
+++ b/docs/cli/entities/activations/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/entities/activations/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/activations/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/fav [...]
-<meta name=description content="Detailed records of action executions"><meta property="og:url" content="/docs/cli/entities/activations/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Activations"><meta property="og:description" content="Detailed records of action executions"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Activations"><meta itemprop=description content="Det [...]
+<meta name=description content="Detailed records of action executions"><meta property="og:url" content="/docs/cli/entities/activations/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Activations"><meta property="og:description" content="Detailed records of action executions"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Activations"><meta itemprop=description content="Det [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/entities/activations/>Return to the regular view of this page</a>.</p></div><h1 class=title>Activations</h1><div class=lead>Detailed records of action executions</div><ul></ul><div class=content><h2 id=activations>Activations</h2><p>When an event occurs that triggers a function, ops creates an activation
record, which contains information about the function execution, such as
input parameters, output results, and any metadata associated with the
diff --git a/docs/cli/entities/activations/index.html b/docs/cli/entities/activations/index.html
index 819c07d..8f4f3db 100644
--- a/docs/cli/entities/activations/index.html
+++ b/docs/cli/entities/activations/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/entities/activations/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/activations/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/ [...]
-<meta name=description content="Detailed records of action executions"><meta property="og:url" content="/docs/cli/entities/activations/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Activations"><meta property="og:description" content="Detailed records of action executions"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Activations"><meta itemprop=description content="Det [...]
+<meta name=description content="Detailed records of action executions"><meta property="og:url" content="/docs/cli/entities/activations/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Activations"><meta property="og:description" content="Detailed records of action executions"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Activations"><meta itemprop=description content="Det [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -128,7 +128,7 @@ activations as they happen.</p><div class=highlight><pre tabindex=0 style=backgr
functions, enabling understanding of how code behaves in response to
different events and allowing for debugging and optimizing serverless
applications.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/entities/index.html b/docs/cli/entities/index.html
index e02bf1f..6f21d87 100644
--- a/docs/cli/entities/index.html
+++ b/docs/cli/entities/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/entities/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-ico [...]
-<meta name=description content="The parts that OpenServerless applications are made of"><meta property="og:url" content="/docs/cli/entities/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Entities"><meta property="og:description" content="The parts that OpenServerless applications are made of"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Entities"><meta itemprop=descript [...]
+<meta name=description content="The parts that OpenServerless applications are made of"><meta property="og:url" content="/docs/cli/entities/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Entities"><meta property="og:description" content="The parts that OpenServerless applications are made of"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Entities"><meta itemprop=descript [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -142,7 +142,7 @@ entities are named</p><ul><li><p><code>/mirella/demo-package/demo-action</code><
is <code>mirella</code>, your namespace is <code>/mirella</code>, and You type <code>demo-package</code>
to mean <code>/mirella/demo-package</code>, and <code>demo-package/demo-action</code> to mean
<code>/mirella/demo-package/demo-action</code>.</p></blockquote><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/cli/entities/packages/>Packages</a></h5><p>How to group actions and their related files</p></div><div class=entry><h5><a href=/docs/cli/entities/actions/>Actions</a></h5><p>Functions, the core of OpenServerless</p></div><div class=entry><h5><a href=/docs/cli/entities/activations/>Activations</a></h5><p>Detailed records of action executions</p></ [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/entities/packages/_print/index.html b/docs/cli/entities/packages/_print/index.html
index 8ca237a..a98a1a4 100644
--- a/docs/cli/entities/packages/_print/index.html
+++ b/docs/cli/entities/packages/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/entities/packages/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/packages/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/ [...]
-<meta name=description content="How to group actions and their related files"><meta property="og:url" content="/docs/cli/entities/packages/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Packages"><meta property="og:description" content="How to group actions and their related files"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Packages"><meta itemprop=description content [...]
+<meta name=description content="How to group actions and their related files"><meta property="og:url" content="/docs/cli/entities/packages/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Packages"><meta property="og:description" content="How to group actions and their related files"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Packages"><meta itemprop=description content [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/entities/packages/>Return to the regular view of this page</a>.</p></div><h1 class=title>Packages</h1><div class=lead>How to group actions and their related files</div><ul></ul><div class=content><h2 id=packages>Packages</h2><p>OpenServerless groups actions and feeds in <strong>packages</strong> under a
namespace. It is conceptually similar to a folder containing a group of
related files.</p><p>A package allows you to:</p><ul><li><p>Group related actions together.</p></li><li><p>Share parameters and annotations (each action sees the parameters
diff --git a/docs/cli/entities/packages/index.html b/docs/cli/entities/packages/index.html
index 15bdef3..aa4fe4c 100644
--- a/docs/cli/entities/packages/index.html
+++ b/docs/cli/entities/packages/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/entities/packages/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/packages/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favico [...]
-<meta name=description content="How to group actions and their related files"><meta property="og:url" content="/docs/cli/entities/packages/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Packages"><meta property="og:description" content="How to group actions and their related files"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Packages"><meta itemprop=description content [...]
+<meta name=description content="How to group actions and their related files"><meta property="og:url" content="/docs/cli/entities/packages/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Packages"><meta property="og:description" content="How to group actions and their related files"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Packages"><meta itemprop=description content [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -111,7 +111,7 @@ organizing actions hierarchically and avoiding naming conflicts.</p><h2 id=concl
manage actions and their dependencies. Using the Ops CLI, you can
efficiently create, add actions, and manage package dependencies,
simplifying the development and management of serverless applications.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/entities/rules/_print/index.html b/docs/cli/entities/rules/_print/index.html
index 7d32fd6..807a6cb 100644
--- a/docs/cli/entities/rules/_print/index.html
+++ b/docs/cli/entities/rules/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/entities/rules/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/rules/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple- [...]
-<meta name=description content="Connection rules between triggers and actions"><meta property="og:url" content="/docs/cli/entities/rules/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Rules"><meta property="og:description" content="Connection rules between triggers and actions"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Rules"><meta itemprop=description content="Conne [...]
+<meta name=description content="Connection rules between triggers and actions"><meta property="og:url" content="/docs/cli/entities/rules/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Rules"><meta property="og:description" content="Connection rules between triggers and actions"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Rules"><meta itemprop=description content="Conne [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/entities/rules/>Return to the regular view of this page</a>.</p></div><h1 class=title>Rules</h1><div class=lead>Connection rules between triggers and actions</div><ul></ul><div class=content><h2 id=rules>Rules</h2><p>Once we have a trigger and some actions, we can create rules for the
trigger. A rule connects the trigger with an action, so if you fire the
trigger, it will invoke the action. Let’s see this in practice in the
diff --git a/docs/cli/entities/rules/index.html b/docs/cli/entities/rules/index.html
index 3ee502f..dd62837 100644
--- a/docs/cli/entities/rules/index.html
+++ b/docs/cli/entities/rules/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/entities/rules/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/rules/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/app [...]
-<meta name=description content="Connection rules between triggers and actions"><meta property="og:url" content="/docs/cli/entities/rules/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Rules"><meta property="og:description" content="Connection rules between triggers and actions"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Rules"><meta itemprop=description content="Conne [...]
+<meta name=description content="Connection rules between triggers and actions"><meta property="og:url" content="/docs/cli/entities/rules/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Rules"><meta property="og:description" content="Connection rules between triggers and actions"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Rules"><meta itemprop=description content="Conne [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -123,7 +123,7 @@ first rule and fire the trigger again to see what happens.</p><div class=highlig
</span></span></code></pre></div><ul><li><p>Disabling the rule.</p></li><li><p>Firing the trigger again.</p></li></ul><p>In the activation polling window, we can see that no action is executed
now. Of course, we can enable the rule again with:</p><pre><code>ops rule enable alertRule
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/entities/sequences/_print/index.html b/docs/cli/entities/sequences/_print/index.html
index 49adc2d..67e46ba 100644
--- a/docs/cli/entities/sequences/_print/index.html
+++ b/docs/cli/entities/sequences/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/entities/sequences/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/sequences/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicon [...]
-<meta name=description content="Combine actions in sequences"><meta property="og:url" content="/docs/cli/entities/sequences/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Sequences"><meta property="og:description" content="Combine actions in sequences"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Sequences"><meta itemprop=description content="Combine actions in sequence [...]
+<meta name=description content="Combine actions in sequences"><meta property="og:url" content="/docs/cli/entities/sequences/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Sequences"><meta property="og:description" content="Combine actions in sequences"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Sequences"><meta itemprop=description content="Combine actions in sequence [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/entities/sequences/>Return to the regular view of this page</a>.</p></div><h1 class=title>Sequences</h1><div class=lead>Combine actions in sequences</div><ul></ul><div class=content><h2 id=sequences>Sequences</h2><p>You can combine actions into sequences and invoke them as a single
action. Therefore, a sequence represents a logical junction between two
or more actions, where each action is invoked in a specific order.</p><h3 id=combine-actions-sequentially>Combine actions sequentially</h3><p>Suppose we want to describe an algorithm for preparing a pizza. We could
diff --git a/docs/cli/entities/sequences/index.html b/docs/cli/entities/sequences/index.html
index 3d7a4ae..888dde8 100644
--- a/docs/cli/entities/sequences/index.html
+++ b/docs/cli/entities/sequences/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/entities/sequences/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/sequences/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favi [...]
-<meta name=description content="Combine actions in sequences"><meta property="og:url" content="/docs/cli/entities/sequences/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Sequences"><meta property="og:description" content="Combine actions in sequences"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Sequences"><meta itemprop=description content="Combine actions in sequence [...]
+<meta name=description content="Combine actions in sequences"><meta property="og:url" content="/docs/cli/entities/sequences/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Sequences"><meta property="og:description" content="Combine actions in sequences"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Sequences"><meta itemprop=description content="Combine actions in sequence [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -157,7 +157,7 @@ before cooking pizza (or after).</p><p>Let’s try it.</p><h3 id=testing-the-seq
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>}</span>
</span></span></code></pre></div><h2 id=conclusion>Conclusion</h2><p>Now, thanks to sequences, our code is split correctly, and we are able
to scale it more easily!</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/entities/triggers/_print/index.html b/docs/cli/entities/triggers/_print/index.html
index 96bfcdb..b6971bc 100644
--- a/docs/cli/entities/triggers/_print/index.html
+++ b/docs/cli/entities/triggers/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/entities/triggers/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/triggers/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/ [...]
-<meta name=description content="Event source that triggers an action execution"><meta property="og:url" content="/docs/cli/entities/triggers/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Triggers"><meta property="og:description" content="Event source that triggers an action execution"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Triggers"><meta itemprop=description con [...]
+<meta name=description content="Event source that triggers an action execution"><meta property="og:url" content="/docs/cli/entities/triggers/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Triggers"><meta property="og:description" content="Event source that triggers an action execution"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Triggers"><meta itemprop=description con [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/entities/triggers/>Return to the regular view of this page</a>.</p></div><h1 class=title>Triggers</h1><div class=lead>Event source that triggers an action execution</div><ul></ul><div class=content><h2 id=triggers>Triggers</h2><p>Now let’s see what a trigger is and how to use it.</p><p>We can define a <strong>trigger</strong> as an object representing an event source
that triggers the execution of <strong>actions</strong>. When activated by an event,
associated actions are executed.</p><p>In other words, a trigger is a mechanism that listens for specific
diff --git a/docs/cli/entities/triggers/index.html b/docs/cli/entities/triggers/index.html
index 9995479..d7e2a49 100644
--- a/docs/cli/entities/triggers/index.html
+++ b/docs/cli/entities/triggers/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/entities/triggers/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/entities/triggers/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favico [...]
-<meta name=description content="Event source that triggers an action execution"><meta property="og:url" content="/docs/cli/entities/triggers/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Triggers"><meta property="og:description" content="Event source that triggers an action execution"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Triggers"><meta itemprop=description con [...]
+<meta name=description content="Event source that triggers an action execution"><meta property="og:url" content="/docs/cli/entities/triggers/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Triggers"><meta property="og:description" content="Event source that triggers an action execution"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Triggers"><meta itemprop=description con [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -109,7 +109,7 @@ resulting in a Slack notification being sent.</p><h2 id=conclusion>Conclusion</h
on various events. By defining triggers and associating them with
actions, you can create powerful applications that respond dynamically
to user interactions, system events, or any other specified conditions.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/index.html b/docs/cli/index.html
index e617da8..5e5a623 100644
--- a/docs/cli/index.html
+++ b/docs/cli/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png size [...]
-<meta name=description content="An handy command line to interact with all parts of OpenServerless"><meta property="og:url" content="/docs/cli/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="CLI"><meta property="og:description" content="An handy command line to interact with all parts of OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="CLI"><meta itemprop=des [...]
+<meta name=description content="An handy command line to interact with all parts of OpenServerless"><meta property="og:url" content="/docs/cli/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="CLI"><meta property="og:description" content="An handy command line to interact with all parts of OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="CLI"><meta itemprop=des [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -96,7 +96,7 @@ the commands described below.</p><h2 id=next-steps>Next Steps</h2><p>Once logged
<a href=/docs/cli/entities/>entities</a></p></li><li><p>learn how to deploy <a href=/docs/cli/project/>projects</a> and <a href=/docs/cli/assets/>web
assets</a></p></li><li><p>learn how to <a href=/docs/cli/admin/>administer the system</a> and <a href=/docs/cli/debug/>debug
the system</a></p></li></ul><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/cli/entities/>Entities</a></h5><p>The parts that OpenServerless applications are made of</p></div><div class=entry><h5><a href=/docs/cli/admin/>Administration</a></h5><p>System administration</p></div><div class=entry><h5><a href=/docs/cli/debug/>Debugging</a></h5><p>Utilities to troubleshoot OpenServerless’ cluster</p></div><div class=entry><h5><a href=/docs/cli/project/>Pr [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/cli/project/_print/index.html b/docs/cli/project/_print/index.html
index 1086b36..7e8fedd 100644
--- a/docs/cli/project/_print/index.html
+++ b/docs/cli/project/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/cli/project/><link rel=alternate type=application/rss+xml href=/docs/cli/project/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180 [...]
-<meta name=description content="How to deal with OpenServerless projects"><meta property="og:url" content="/docs/cli/project/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Project"><meta property="og:description" content="How to deal with OpenServerless projects"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Project"><meta itemprop=description content="How to deal with O [...]
+<meta name=description content="How to deal with OpenServerless projects"><meta property="og:url" content="/docs/cli/project/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Project"><meta property="og:description" content="How to deal with OpenServerless projects"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Project"><meta itemprop=description content="How to deal with O [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/cli/project/>Return to the regular view of this page</a>.</p></div><h1 class=title>Project</h1><div class=lead>How to deal with OpenServerless projects</div><ul></ul><div class=content><h2 id=project>Project</h2><h3 id=an-openserverless-project>An OpenServerless Project</h3><blockquote><p>⚠️ <strong>WARNING</strong></p><p>This document is still 🚧 <strong>work in progress</strong> 🚧</p></blockquote><p>A pro [...]
are up to you. Your app can contain one or more projects. The folder
structure of a project determines how the deployer finds and labels
diff --git a/docs/cli/project/index.html b/docs/cli/project/index.html
index 8f18d72..c047d21 100644
--- a/docs/cli/project/index.html
+++ b/docs/cli/project/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/cli/project/_print/><link rel=alternate type=application/rss+xml href=/docs/cli/project/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon- [...]
-<meta name=description content="How to deal with OpenServerless projects"><meta property="og:url" content="/docs/cli/project/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Project"><meta property="og:description" content="How to deal with OpenServerless projects"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Project"><meta itemprop=description content="How to deal with O [...]
+<meta name=description content="How to deal with OpenServerless projects"><meta property="og:url" content="/docs/cli/project/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Project"><meta property="og:description" content="How to deal with OpenServerless projects"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Project"><meta itemprop=description content="How to deal with O [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -100,7 +100,7 @@ supported ones: <code>.js</code> <code>.py</code> <code>.php</code> <code>.go</c
as an action.</p><h4 id=multi-file-actions>Multi File Actions</h4><p>A multi-file action is a folder containing a <code>main</code> file and
dependencies. The folder is bundled into a zip file and deployed as an
action.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/index.html b/docs/index.html
index 46dbb89..787bbe6 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -5,10 +5,10 @@ OpenServerless is based on Apache OpenWhisk, which provides a powerful, producti
However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Docs"><meta itemprop=description content="About Apache OpenServerless Apache OpenServerless is an Open Source project, released under the Apache License 2.0 providing a portable and complete Serverless environment, allowing to build quickly and easily c [...]
Our goal is to make OpenServerless ubitiquous, allowing it to easily run a complete and portable environment that runs in every Kubernetes.
OpenServerless is based on Apache OpenWhisk, which provides a powerful, production-ready serverless engine.
-However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="209"><meta name=twitter:card content="summary"><meta name=twitter:title content="Docs"><meta name=twitter:description content="About Apache OpenServerless Apache OpenServerless is an Open Source project, released under the Apache License 2.0 providing a portable and [...]
+However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="209"><meta name=twitter:card content="summary"><meta name=twitter:title content="Docs"><meta name=twitter:description content="About Apache OpenServerless Apache OpenServerless is an Open Source project, released under the Apache License 2.0 providing a portable and [...]
Our goal is to make OpenServerless ubitiquous, allowing it to easily run a complete and portable environment that runs in every Kubernetes.
OpenServerless is based on Apache OpenWhisk, which provides a powerful, production-ready serverless engine.
-However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/pris [...]
+However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/pris [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -114,7 +114,7 @@ Kubernetes.</p></li><li><p>It is however tested regularly against a set of suppo
environments.</p></li></ul><p>If you want to know more about our goals, check our
<a href=https://github.com/nuvolaris/nuvolaris/blob/main/docs/ROADMAP.md><strong>roadmap</strong></a>
document.</p><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/tutorial/>Tutorial</a></h5><p>Showcase serverless development in action</p></div><div class=entry><h5><a href=/docs/cli/>CLI</a></h5><p>An handy command line to interact with all parts of OpenServerless</p></div><div class=entry><h5><a href=/docs/reference/>Reference</a></h5><p>OpenServerless Developer Guide</p></div><div class=entry><h5><a href=/docs/installation/>Installation</a></h5><p>How to [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/_print/index.html b/docs/installation/_print/index.html
index 3a1f763..6192083 100644
--- a/docs/installation/_print/index.html
+++ b/docs/installation/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/><link rel=alternate type=application/rss+xml href=/docs/installation/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-1 [...]
-<meta name=description content="How to and where install OpenServerless"><meta property="og:url" content="/docs/installation/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Installation"><meta property="og:description" content="How to and where install OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Installation"><meta itemprop=description content="How to an [...]
+<meta name=description content="How to and where install OpenServerless"><meta property="og:url" content="/docs/installation/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Installation"><meta property="og:description" content="How to and where install OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Installation"><meta itemprop=description content="How to an [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/>Return to the regular view of this page</a>.</p></div><h1 class=title>Installation</h1><div class=lead>How to and where install OpenServerless</div><ul><li>1: <a href=#pg-8c3f05165c53384fa59c1453a0fb9b64>Quick Start</a></li><ul></ul><li>2: <a href=#pg-1642ee41003decf99634e3d9c714851c>Download</a></li><ul></ul><li>3: <a href=#pg-d88677d4167778f5d3ca8a81629227c5>Prerequisites</a></li><ul><li>3. [...]
read), please read at least our <a href=/docs/installation/quickstart/>Quick Start</a>
single page installation guide.</p><p>It gives you an overview of the installation process, omitting some more
@@ -144,7 +144,7 @@ then <a href=/docs/installation/prereq/server/generic/>configure it</a></p></li>
install <a href=/docs/installation/prereq/server/k3s/>K3S</a> or
<a href=/docs/installation/prereq/server/mk8s/>MicroK8S</a> in it.</p><p>Once you have configured you server, you can proceed
<a href=/docs/installation/configure/>configuring OpenServerless</a> for the installation.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-c8f8a7091cc35f968fc5e121e51c459b>3.2.1 - SSH and Sudo</h1><div class=lead>General prerequisites to install OpenServerless</div><h2 id=configure-a-generic-linux-server-to-install-openserverless>Configure a generic Linux server to install OpenServerless</h2><p>If you have access to a generic Linux server, to be able to install
-Nuvolaris it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
+OpenServerless it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
for information how to create a <a href=/docs/installation/prereq/server/generic/#sshkey>sshkey</a>,
<a href=/docs/installation/prereq/server/generic/#sudo>configure sudo</a> and <a href=/docs/installation/prereq/server/generic/#firewall>open the firewall</a></p><h3 id=sshkey>Installing a public SSH key</h3><p>To connect to a server without a password using <code>openssh</code> (used by the
installer), you need a couple of files called <strong>ssh keys</strong>.</p><p>You can generate them on the command line using this command:</p><pre><code>ssh-keygen
diff --git a/docs/installation/configure/_print/index.html b/docs/installation/configure/_print/index.html
index 40d72cf..cc60b6c 100644
--- a/docs/installation/configure/_print/index.html
+++ b/docs/installation/configure/_print/index.html
@@ -15,7 +15,7 @@ Minimal Configuration Without any configuration, you get a minimal OpenServerles
only the serverless engine, no extra services
accessible is only in http
You can:
-configure a DNS name or wildcard for your server or cluster, thus enabling SSL and static publishing."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="118"><meta name=twitter:card content="summary"><meta name=twitter:title content="Configure OpenServerless"><meta name=twitter:description content="Configuring OpenServerless Installation This section guides configuring the OpenServerless installation.
+configure a DNS name or wildcard for your server or cluster, thus enabling SSL and static publishing."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="118"><meta name=twitter:card content="summary"><meta name=twitter:title content="Configure OpenServerless"><meta name=twitter:description content="Configuring OpenServerless Installation This section guides configuring the OpenServerless installation.
Note that you can also skip this configuration, and install OpenServerless without any configuration.
Once you configure the installation, you can proceed to Install OpenServerless.
You can then reconfigure the system later.
@@ -23,7 +23,7 @@ Minimal Configuration Without any configuration, you get a minimal OpenServerles
only the serverless engine, no extra services
accessible is only in http
You can:
-configure a DNS name or wildcard for your server or cluster, thus enabling SSL and static publishing."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class [...]
+configure a DNS name or wildcard for your server or cluster, thus enabling SSL and static publishing."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/configure/>Return to the regular view of this page</a>.</p></div><h1 class=title>Configure OpenServerless</h1><ul><li>1: <a href=#pg-be207599c3aa71cb110feb062b890918>DNS and SSL</a></li><ul></ul><li>2: <a href=#pg-29e1dfdb1ff6aee88ce1de74e2c1f27d>Services</a></li><ul></ul></ul><div class=content><h2 id=configuring-openserverless-installation>Configuring OpenServerless Installation</h2><p>This [...]
OpenServerless without any configuration.</p><p>Once you configure the installation, you can proceed to
<a href=/docs/installation/install/>Install OpenServerless</a>.</p><p>You can then reconfigure the system later.</p><h3 id=minimal-configuration>Minimal Configuration</h3><p>Without any configuration, you get a minimal OpenServerless:</p><ul><li><p>only the serverless engine, no extra services</p></li><li><p>accessible is only in <code>http</code></p></li></ul><p>You can:</p><ul><li><p><a href=/docs/installation/configure/dns/>configure a DNS name or wildcard</a> for your server
diff --git a/docs/installation/configure/dns/_print/index.html b/docs/installation/configure/dns/_print/index.html
index 378ea94..a4b7048 100644
--- a/docs/installation/configure/dns/_print/index.html
+++ b/docs/installation/configure/dns/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/configure/dns/><link rel=alternate type=application/rss+xml href=/docs/installation/configure/dns/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href= [...]
-<meta name=description content="Configuring DNS and SSL"><meta property="og:url" content="/docs/installation/configure/dns/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="DNS and SSL"><meta property="og:description" content="Configuring DNS and SSL"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="DNS and SSL"><meta itemprop=description content="Configuring DNS and SSL"><met [...]
+<meta name=description content="Configuring DNS and SSL"><meta property="og:url" content="/docs/installation/configure/dns/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="DNS and SSL"><meta property="og:description" content="Configuring DNS and SSL"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="DNS and SSL"><meta itemprop=description content="Configuring DNS and SSL"><met [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/configure/dns/>Return to the regular view of this page</a>.</p></div><h1 class=title>DNS and SSL</h1><div class=lead>Configuring DNS and SSL</div><ul></ul><div class=content><h2 id=dns-and-ssl>Configuring DNS and SSL</h2><p>You can use OpenServerless as just as a serverless engine, and use the
default IP or DNS provided when provisioned your server or cluster. If
you do so, only http is avaialble, and it is not secure.</p><p>If you want your server or cluster is available with a well-known
diff --git a/docs/installation/configure/dns/index.html b/docs/installation/configure/dns/index.html
index 5ef33ab..0d7c20f 100644
--- a/docs/installation/configure/dns/index.html
+++ b/docs/installation/configure/dns/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/configure/dns/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/configure/dns/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon hr [...]
-<meta name=description content="Configuring DNS and SSL"><meta property="og:url" content="/docs/installation/configure/dns/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="DNS and SSL"><meta property="og:description" content="Configuring DNS and SSL"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="DNS and SSL"><meta itemprop=description content="Configuring DNS and SSL"><met [...]
+<meta name=description content="Configuring DNS and SSL"><meta property="og:url" content="/docs/installation/configure/dns/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="DNS and SSL"><meta property="og:description" content="Configuring DNS and SSL"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="DNS and SSL"><meta itemprop=description content="Configuring DNS and SSL"><met [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -133,7 +133,7 @@ invalidated and needs to be renewed), you can configure your apihost and
enable SSL as follows:</p><pre><code>ops config apihost <apihost> --tls=<email>
</code></pre><p>Of course, replace the <code><apihost></code> with the actual DNS name you
registered, and <code><email></code> with your email address</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/configure/index.html b/docs/installation/configure/index.html
index 245f1f7..fdd4120 100644
--- a/docs/installation/configure/index.html
+++ b/docs/installation/configure/index.html
@@ -15,7 +15,7 @@ Minimal Configuration Without any configuration, you get a minimal OpenServerles
only the serverless engine, no extra services
accessible is only in http
You can:
-configure a DNS name or wildcard for your server or cluster, thus enabling SSL and static publishing."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="118"><meta name=twitter:card content="summary"><meta name=twitter:title content="Configure OpenServerless"><meta name=twitter:description content="Configuring OpenServerless Installation This section guides configuring the OpenServerless installation.
+configure a DNS name or wildcard for your server or cluster, thus enabling SSL and static publishing."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="118"><meta name=twitter:card content="summary"><meta name=twitter:title content="Configure OpenServerless"><meta name=twitter:description content="Configuring OpenServerless Installation This section guides configuring the OpenServerless installation.
Note that you can also skip this configuration, and install OpenServerless without any configuration.
Once you configure the installation, you can proceed to Install OpenServerless.
You can then reconfigure the system later.
@@ -23,7 +23,7 @@ Minimal Configuration Without any configuration, you get a minimal OpenServerles
only the serverless engine, no extra services
accessible is only in http
You can:
-configure a DNS name or wildcard for your server or cluster, thus enabling SSL and static publishing."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class [...]
+configure a DNS name or wildcard for your server or cluster, thus enabling SSL and static publishing."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -116,7 +116,7 @@ services:</p><ul><li><p><a href=/docs/installation/configure/services/#static>St
content</p></li><li><p><a href=/docs/installation/configure/services/#redis>REDIS</a>, a powerful key-value store</p></li><li><p><a href=/docs/installation/configure/services/#minio>MinIO</a>, an object storage</p></li><li><p><a href=/docs/installation/configure/services/#postgres>Postgres</a>, a powerful SQL
database</p></li><li><p><a href=/docs/installation/configure/services/#ferretdb>FerretDB</a> a NO-SQL, MongoDB
compatible adapter for Postgres</p></li></ul></li></ul><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/installation/configure/dns/>DNS and SSL</a></h5><p>Configuring DNS and SSL</p></div><div class=entry><h5><a href=/docs/installation/configure/services/>Services</a></h5><p>Configure OpenServerless services</p></div></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.fee [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/configure/services/_print/index.html b/docs/installation/configure/services/_print/index.html
index 9a8406c..e77fdc1 100644
--- a/docs/installation/configure/services/_print/index.html
+++ b/docs/installation/configure/services/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/configure/services/><link rel=alternate type=application/rss+xml href=/docs/installation/configure/services/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch- [...]
-<meta name=description content="Configure OpenServerless services"><meta property="og:url" content="/docs/installation/configure/services/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Services"><meta property="og:description" content="Configure OpenServerless services"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Services"><meta itemprop=description content="Configure [...]
+<meta name=description content="Configure OpenServerless services"><meta property="og:url" content="/docs/installation/configure/services/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Services"><meta property="og:description" content="Configure OpenServerless services"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Services"><meta itemprop=description content="Configure [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/configure/services/>Return to the regular view of this page</a>.</p></div><h1 class=title>Services</h1><div class=lead>Configure OpenServerless services</div><ul></ul><div class=content><h2 id=configuring-openserverless-services>Configuring OpenServerless services</h2><p>After you satisfied the <a href=/docs/installation/configure/services/#../../prereq/index.adoc>prerequisites</a> and
before you actually <a href=/docs/installation/configure/services/#../../install/index.adoc>install</a> OpenServerless, you
have to select which services you want to install:</p><ul><li><p><a href=/docs/installation/configure/services/#static>Static</a>, publishing of static assets</p></li><li><p><a href=/docs/installation/configure/services/#redis>Redis</a>, a storage service</p></li><li><p><a href=/docs/installation/configure/services/#minio>MinIO</a> an object storage service</p></li><li><p><a href=/docs/installation/configure/services/#postgres>Postgres</a> a relational SQL database</p></li><li><p><a href [...]
diff --git a/docs/installation/configure/services/index.html b/docs/installation/configure/services/index.html
index b3e1c0a..0b39405 100644
--- a/docs/installation/configure/services/index.html
+++ b/docs/installation/configure/services/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/configure/services/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/configure/services/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-tou [...]
-<meta name=description content="Configure OpenServerless services"><meta property="og:url" content="/docs/installation/configure/services/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Services"><meta property="og:description" content="Configure OpenServerless services"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Services"><meta itemprop=description content="Configure [...]
+<meta name=description content="Configure OpenServerless services"><meta property="og:url" content="/docs/installation/configure/services/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Services"><meta property="og:description" content="Configure OpenServerless services"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Services"><meta itemprop=description content="Configure [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -104,7 +104,7 @@ Postgres.</p><blockquote><p>💡 <strong>NOTE</strong></p><p>Since FerretDB uses
service Postgresql will be enabled as it is required.</p></blockquote><p>Enable MongoDB api with FerretDB:</p><pre><code>ops config enable --mongodb
</code></pre><p>Disable MongoDB api with FerretDB:</p><pre><code>ops config disable --mongodb
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/debug/_print/index.html b/docs/installation/debug/_print/index.html
index 724cea7..e0a756a 100644
--- a/docs/installation/debug/_print/index.html
+++ b/docs/installation/debug/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/debug/><link rel=alternate type=application/rss+xml href=/docs/installation/debug/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple- [...]
-<meta name=description content="How to diagnose and solve issues"><meta property="og:url" content="/docs/installation/debug/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Troubleshooting"><meta property="og:description" content="How to diagnose and solve issues"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Troubleshooting"><meta itemprop=description content="How to diag [...]
+<meta name=description content="How to diagnose and solve issues"><meta property="og:url" content="/docs/installation/debug/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Troubleshooting"><meta property="og:description" content="How to diagnose and solve issues"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Troubleshooting"><meta itemprop=description content="How to diag [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/debug/>Return to the regular view of this page</a>.</p></div><h1 class=title>Troubleshooting</h1><div class=lead>How to diagnose and solve issues</div><ul></ul><div class=content><h2 id=debug>Debug</h2><p>This document gives you hints for diagnostics and solving issues, using
the (hidden) subcommand <code>debug</code>.</p><p>Note it is technical and assumes you have some knowledge of how
Kubernetes operates.</p><h3 id=watching>Watching</h3><p>While installing, you can watch the installation (opening another
diff --git a/docs/installation/debug/index.html b/docs/installation/debug/index.html
index 0d2d9ce..fb7c9ac 100644
--- a/docs/installation/debug/index.html
+++ b/docs/installation/debug/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/debug/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/debug/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/app [...]
-<meta name=description content="How to diagnose and solve issues"><meta property="og:url" content="/docs/installation/debug/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Troubleshooting"><meta property="og:description" content="How to diagnose and solve issues"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Troubleshooting"><meta itemprop=description content="How to diag [...]
+<meta name=description content="How to diagnose and solve issues"><meta property="og:url" content="/docs/installation/debug/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Troubleshooting"><meta property="og:description" content="How to diagnose and solve issues"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Troubleshooting"><meta itemprop=description content="How to diag [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -97,7 +97,7 @@ terminal) with the command:</p><pre><code>ops debug watch
Kubernetes configuration.</p><p>If you want to go more in-depth and you are knowledgeable of Kubernetes,
you can export the kubeconfig with <code>ops debug export F=<file></code>.</p><p>You can <strong>overwrite your kubeconfig</strong> (be aware there is no backup) with
<code>ops debug export F=-</code>.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/download/_print/index.html b/docs/installation/download/_print/index.html
index a9814f9..48f7baa 100644
--- a/docs/installation/download/_print/index.html
+++ b/docs/installation/download/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/download/><link rel=alternate type=application/rss+xml href=/docs/installation/download/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/ [...]
-<meta name=description content="Download OpenServerless with ops CLI"><meta property="og:url" content="/docs/installation/download/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Download"><meta property="og:description" content="Download OpenServerless with ops CLI"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Download"><meta itemprop=description content="Download OpenS [...]
+<meta name=description content="Download OpenServerless with ops CLI"><meta property="og:url" content="/docs/installation/download/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Download"><meta property="og:description" content="Download OpenServerless with ops CLI"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Download"><meta itemprop=description content="Download OpenS [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/download/>Return to the regular view of this page</a>.</p></div><h1 class=title>Download</h1><div class=lead>Download OpenServerless with ops CLI</div><ul></ul><div class=content><h2 id=download-and-install-ops>Download and Install <code>ops</code></h2><h3 id=what-is-ops>What is <code>ops</code>?</h3><p>As you can guess it helps with operations: ops is the <strong>OP</strong>en<strong>S</stron [...]
</span></span></code></pre></div><p>Quick install in Windows with PowerShell</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-powershell data-lang=powershell><span style=display:flex><span><span style=color:#204a87>irm </span><span style=color:#000>bit</span><span style=color:#000;font-weight:700>.</span><span style=color:#000>ly</span><span style=color:#000;font-weight:700>/</span><span style=color:#204a [...]
</span></span></span></code></pre></div><h3 id=after-the-installation>After the installation</h3><p>Once installed, in the first run <code>ops</code> will tell to update the tasks
diff --git a/docs/installation/download/index.html b/docs/installation/download/index.html
index 273de9d..945ca79 100644
--- a/docs/installation/download/index.html
+++ b/docs/installation/download/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/download/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/download/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favico [...]
-<meta name=description content="Download OpenServerless with ops CLI"><meta property="og:url" content="/docs/installation/download/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Download"><meta property="og:description" content="Download OpenServerless with ops CLI"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Download"><meta itemprop=description content="Download OpenS [...]
+<meta name=description content="Download OpenServerless with ops CLI"><meta property="og:url" content="/docs/installation/download/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Download"><meta property="og:description" content="Download OpenServerless with ops CLI"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Download"><meta itemprop=description content="Download OpenS [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -92,7 +92,7 @@ latest version. This command should be also executed frequently, as the
tasks are continuously evolving and expanding.</p><p><code>ops</code> will suggest when to update them (at least once a day).</p><p>You normally just need to update the tasks but sometimes you also need
to update <code>ops</code> itself. The system will detect when it is the case and
tell you what to do.</p><h3 id=where-to-find-more-details>Where to find more details:</h3><p>For more details, please visit the Github page of <a href=https://github.com/apache/openserverless-cli>Openserverless Cli</a></p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedbac [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/index.html b/docs/installation/index.html
index 6f31d6c..68cd8fd 100644
--- a/docs/installation/index.html
+++ b/docs/installation/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-ico [...]
-<meta name=description content="How to and where install OpenServerless"><meta property="og:url" content="/docs/installation/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Installation"><meta property="og:description" content="How to and where install OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Installation"><meta itemprop=description content="How to an [...]
+<meta name=description content="How to and where install OpenServerless"><meta property="og:url" content="/docs/installation/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Installation"><meta property="og:description" content="How to and where install OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Installation"><meta itemprop=description content="How to an [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -97,7 +97,7 @@ them</p><p>If the the prerequisites are OK, you can make your choices of what yo
want to <a href=/docs/installation/configure/>Configure</a> your OpenServerless
installation.</p><p>Finally, once you have:</p><ol><li><p>downloaded <code>ops</code></p></li><li><p>satisfied the prerequisites</p></li><li><p>configured your installation</p></li></ol><p>you can choose where to install, either:</p><ul><li><p>in your <a href=/docs/installation/install/local/>Local machine</a></p></li><li><p>in a <a href=/docs/installation/install/server/>Linux server</a></p></li><li><p>in a <a href=/docs/installation/install/cluster/>Kubernetes cluster</a></p></li></ul> [...]
update the system.</p><h3 id=support>Support</h3><p>If you have issues, please check:</p><ul><li><p>the <a href=/docs/installation/debug/>Troubleshooting</a> page</p></li><li><p>our <a href=http://nuvolaris.discourse.group>Discussion forum</a></p></li></ul><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/installation/quickstart/>Quick Start</a></h5><p>Fast path to install a self-hosted OpenServerless</p></div><div class=entry><h5><a href=/docs/installation [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/install/_print/index.html b/docs/installation/install/_print/index.html
index 9f793e6..15e7b29 100644
--- a/docs/installation/install/_print/index.html
+++ b/docs/installation/install/_print/index.html
@@ -7,11 +7,11 @@ The install process will notify nuvolaris creators with the type of installation
Before installation Please ensure you have:
downloaded the installer satisfied the prerequisites configured your installation Core Installation Once you have completed the preparation steps, you can proceed with:
a local installation on your local machine a single server installation on a Linux server a clustered installation on a Kubernetes cluster. 💡 NOTE
-The install process will notify nuvolaris creators with the type of installation (for example: clustered or server installation), no other info will be submitted."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="141"><meta name=twitter:card content="summary"><meta name=twitter:title content="Install OpenServerless"><meta name=twitter:description content="Installation Overview This page provides an overview of the installation process.
+The install process will notify nuvolaris creators with the type of installation (for example: clustered or server installation), no other info will be submitted."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="141"><meta name=twitter:card content="summary"><meta name=twitter:title content="Install OpenServerless"><meta name=twitter:description content="Installation Overview This page provides an overview of the installation process.
Before installation Please ensure you have:
downloaded the installer satisfied the prerequisites configured your installation Core Installation Once you have completed the preparation steps, you can proceed with:
a local installation on your local machine a single server installation on a Linux server a clustered installation on a Kubernetes cluster. 💡 NOTE
-The install process will notify nuvolaris creators with the type of installation (for example: clustered or server installation), no other info will be submitted."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></scrip [...]
+The install process will notify nuvolaris creators with the type of installation (for example: clustered or server installation), no other info will be submitted."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></scrip [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/install/>Return to the regular view of this page</a>.</p></div><h1 class=title>Install OpenServerless</h1><ul><li>1: <a href=#pg-468eb1c803501e0c8fee24ddc1d4914c>Docker</a></li><ul></ul><li>2: <a href=#pg-2a348e473e676744aeb27b6b290fa85c>Linux Server</a></li><ul></ul><li>3: <a href=#pg-e2ad6ea02f40220590e02be2e3387f01>Kubernetes cluster</a></li><ul></ul></ul><div class=content><h2 id=installat [...]
<a href=/docs/installation/install/local/>local machine</a></li><li>a single server installation on a
<a href=/docs/installation/install/server/>Linux server</a></li><li>a clustered installation on a
diff --git a/docs/installation/install/cluster/_print/index.html b/docs/installation/install/cluster/_print/index.html
index 1b6eedc..c9320ff 100644
--- a/docs/installation/install/cluster/_print/index.html
+++ b/docs/installation/install/cluster/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/install/cluster/><link rel=alternate type=application/rss+xml href=/docs/installation/install/cluster/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon h [...]
-<meta name=description content="Install OpenServerless on a Kubernetes Cluster"><meta property="og:url" content="/docs/installation/install/cluster/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Kubernetes cluster"><meta property="og:description" content="Install OpenServerless on a Kubernetes Cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Kubernetes cluster"><me [...]
+<meta name=description content="Install OpenServerless on a Kubernetes Cluster"><meta property="og:url" content="/docs/installation/install/cluster/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Kubernetes cluster"><meta property="og:description" content="Install OpenServerless on a Kubernetes Cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Kubernetes cluster"><me [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/install/cluster/>Return to the regular view of this page</a>.</p></div><h1 class=title>Kubernetes cluster</h1><div class=lead>Install OpenServerless on a Kubernetes Cluster</div><ul></ul><div class=content><h2 id=cluster-installation>Cluster Installation</h2><p>This section describes how to install OpenServerless on a Kubernetes Cluster</p><h3 id=prerequisites>Prerequisites</h3><p>Before insta [...]
configuration, or you provisioned a cluster in some cloud using <code>ops</code>
embedded tools, you just need to type:</p><pre><code>ops setup cluster
diff --git a/docs/installation/install/cluster/index.html b/docs/installation/install/cluster/index.html
index cc28176..ba8df05 100644
--- a/docs/installation/install/cluster/index.html
+++ b/docs/installation/install/cluster/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/install/cluster/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/install/cluster/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-ico [...]
-<meta name=description content="Install OpenServerless on a Kubernetes Cluster"><meta property="og:url" content="/docs/installation/install/cluster/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Kubernetes cluster"><meta property="og:description" content="Install OpenServerless on a Kubernetes Cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Kubernetes cluster"><me [...]
+<meta name=description content="Install OpenServerless on a Kubernetes Cluster"><meta property="og:url" content="/docs/installation/install/cluster/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Kubernetes cluster"><meta property="og:description" content="Install OpenServerless on a Kubernetes Cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Kubernetes cluster"><me [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -92,7 +92,7 @@ instances, each one identified by a different <code><context></code> name. Yo
install the OpenServerless cluster in a specified <code><context></code> with:</p><pre><code>ops setup cluster <context>
</code></pre><h3 id=post-install>Post Install</h3><ul><li><p><a href=/docs/tutorial/>Check the tutorial</a> to learn how to use it.</p></li><li><p>To uninstall, execute the command:</p></li></ul><pre tabindex=0><code>ops setup cluster --uninstall
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/install/docker/_print/index.html b/docs/installation/install/docker/_print/index.html
index 9dd9cf9..6b15f57 100644
--- a/docs/installation/install/docker/_print/index.html
+++ b/docs/installation/install/docker/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/install/docker/><link rel=alternate type=application/rss+xml href=/docs/installation/install/docker/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon hre [...]
-<meta name=description content="Install OpenServerless on a local machine"><meta property="og:url" content="/docs/installation/install/docker/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Docker"><meta property="og:description" content="Install OpenServerless on a local machine"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Docker"><meta itemprop=description content="In [...]
+<meta name=description content="Install OpenServerless on a local machine"><meta property="og:url" content="/docs/installation/install/docker/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Docker"><meta property="og:description" content="Install OpenServerless on a local machine"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Docker"><meta itemprop=description content="In [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/install/docker/>Return to the regular view of this page</a>.</p></div><h1 class=title>Docker</h1><div class=lead>Install OpenServerless on a local machine</div><ul></ul><div class=content><h2 id=local-docker-installation>Local Docker installation</h2><p>This page describes how to install OpenServerless on your local machine. The
services are limited and not accessible from the outside so it is an
installation useful only for <b>development purposes</b>.</p><h3 id=prerequisites>Prerequisites</h3><p>Before installing, you need to:</p><ul><li><p>install <a href=/docs/installation/prereq/docker/>Docker</a>.</p></li><li><p>install <a href=/docs/installation/download/>ops</a>.</p></li><li><p>perform a minimal configuration. For more details about this,
diff --git a/docs/installation/install/docker/index.html b/docs/installation/install/docker/index.html
index 52efa5c..9e553d3 100644
--- a/docs/installation/install/docker/index.html
+++ b/docs/installation/install/docker/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/install/docker/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/install/docker/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon [...]
-<meta name=description content="Install OpenServerless on a local machine"><meta property="og:url" content="/docs/installation/install/docker/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Docker"><meta property="og:description" content="Install OpenServerless on a local machine"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Docker"><meta itemprop=description content="In [...]
+<meta name=description content="Install OpenServerless on a local machine"><meta property="og:url" content="/docs/installation/install/docker/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Docker"><meta property="og:description" content="Install OpenServerless on a local machine"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Docker"><meta itemprop=description content="In [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -128,7 +128,7 @@ Useful to re-try an installation when something gone wrong.</p><div class=highli
</span></span><span style=display:flex><span>ops config reset
</span></span></code></pre></div><h4 id=remove-devcluster>Remove devcluster</h4><p>This will actually remove the nodes from kind:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops setup devcluster --uninstall
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/install/index.html b/docs/installation/install/index.html
index 39dff4d..f0eb900 100644
--- a/docs/installation/install/index.html
+++ b/docs/installation/install/index.html
@@ -7,11 +7,11 @@ The install process will notify nuvolaris creators with the type of installation
Before installation Please ensure you have:
downloaded the installer satisfied the prerequisites configured your installation Core Installation Once you have completed the preparation steps, you can proceed with:
a local installation on your local machine a single server installation on a Linux server a clustered installation on a Kubernetes cluster. 💡 NOTE
-The install process will notify nuvolaris creators with the type of installation (for example: clustered or server installation), no other info will be submitted."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="141"><meta name=twitter:card content="summary"><meta name=twitter:title content="Install OpenServerless"><meta name=twitter:description content="Installation Overview This page provides an overview of the installation process.
+The install process will notify nuvolaris creators with the type of installation (for example: clustered or server installation), no other info will be submitted."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="141"><meta name=twitter:card content="summary"><meta name=twitter:title content="Install OpenServerless"><meta name=twitter:description content="Installation Overview This page provides an overview of the installation process.
Before installation Please ensure you have:
downloaded the installer satisfied the prerequisites configured your installation Core Installation Once you have completed the preparation steps, you can proceed with:
a local installation on your local machine a single server installation on a Linux server a clustered installation on a Kubernetes cluster. 💡 NOTE
-The install process will notify nuvolaris creators with the type of installation (for example: clustered or server installation), no other info will be submitted."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></scrip [...]
+The install process will notify nuvolaris creators with the type of installation (for example: clustered or server installation), no other info will be submitted."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></scrip [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -102,7 +102,7 @@ The install process will notify nuvolaris creators with the type of installation
<a href=/docs/installation/install/cluster/>Kubernetes cluster</a>.</li></ul><blockquote><p>💡 <strong>NOTE</strong></p><p>The install process will notify nuvolaris creators with the type of installation (for example: clustered or server installation), no other info will be submitted. If you want to disable the notification, you can execute the following command before the setup command:</p></blockquote><pre><code>ops -config DO_NOT_NOTIFY_NUVOLARIS=1
</code></pre><h3 id=post-installation>Post installation</h3><p>After the installation, you can consult the development guide
for informations how to reconfigure and update the system.</p><h3 id=support>Support</h3><p>If something goes wrong, you can check:</p><ul><li>the <a href=/docs/installation/debug/>Troubleshooting</a> page</li><li>our online <a href=http://nuvolaris.discourse.group>Forum</a></li></ul><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/installation/install/docker/>Docker</a></h5><p>Install OpenServerless on a local machine</p></div><div class=entry><h5><a href [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/install/server/_print/index.html b/docs/installation/install/server/_print/index.html
index 09162af..c117cfc 100644
--- a/docs/installation/install/server/_print/index.html
+++ b/docs/installation/install/server/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/install/server/><link rel=alternate type=application/rss+xml href=/docs/installation/install/server/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon hre [...]
-<meta name=description content="Install on a Linux Server"><meta property="og:url" content="/docs/installation/install/server/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Linux Server"><meta property="og:description" content="Install on a Linux Server"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Linux Server"><meta itemprop=description content="Install on a Linux Ser [...]
+<meta name=description content="Install on a Linux Server"><meta property="og:url" content="/docs/installation/install/server/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Linux Server"><meta property="og:description" content="Install on a Linux Server"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Linux Server"><meta itemprop=description content="Install on a Linux Ser [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/install/server/>Return to the regular view of this page</a>.</p></div><h1 class=title>Linux Server</h1><div class=lead>Install on a Linux Server</div><ul></ul><div class=content><h2 id=server-installation>Server Installation</h2><p>This page describes how to install OpenServerless on a Linux server
accessible with SSH.</p><p>This is a single node installation, so it is advisable only for
development purposes.</p><h3 id=prerequisites>Prerequisites</h3><p>Before installing, you need to:</p><ol><li><p>install the OpenServerless CLI <a href=/docs/installation/download/>ops</a>;</p></li><li><p>provision a <a href=/docs/installation/prereq/server/>server running a Linux operating system</a>,
diff --git a/docs/installation/install/server/index.html b/docs/installation/install/server/index.html
index 47f263e..86e1fa9 100644
--- a/docs/installation/install/server/index.html
+++ b/docs/installation/install/server/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/install/server/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/install/server/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon [...]
-<meta name=description content="Install on a Linux Server"><meta property="og:url" content="/docs/installation/install/server/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Linux Server"><meta property="og:description" content="Install on a Linux Server"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Linux Server"><meta itemprop=description content="Install on a Linux Ser [...]
+<meta name=description content="Install on a Linux Server"><meta property="og:url" content="/docs/installation/install/server/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Linux Server"><meta property="og:description" content="Install on a Linux Server"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Linux Server"><meta itemprop=description content="Install on a Linux Ser [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -96,7 +96,7 @@ used to access the server, and <code><user></code> with the username you have
use to access the server</p></blockquote><p>Wait until the command completes and you will have OpenServerless up and
running.</p><h3 id=post-install>Post Install</h3><ul><li><p><a href=/docs/tutorial/>Check the tutorial</a> to learn how to use it.</p></li><li><p>To uninstall, execute the command:</p></li></ul><pre tabindex=0><code>ops setup server <server> <user> --uninstall
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/_print/index.html b/docs/installation/prereq/_print/index.html
index 4d7cbe8..c1c2e80 100644
--- a/docs/installation/prereq/_print/index.html
+++ b/docs/installation/prereq/_print/index.html
@@ -7,11 +7,11 @@ Single Node development installation For development purposes, you can install a
You can install OpenServerless:
for development in a single node environment, either in your local machine or in a Linux server.
for production, in a multi node environment provided by a Kubernetes cluster.
-Single Node development installation For development purposes, you can install a single node OpenServerless deployment in the following environments as soon as the following requirements are satisfied:"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="235"><meta name=twitter:card content="summary"><meta name=twitter:title content="Prerequisites"><meta name=twitter:description content="Prerequisites to install OpenServerless This page lists [...]
+Single Node development installation For development purposes, you can install a single node OpenServerless deployment in the following environments as soon as the following requirements are satisfied:"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="235"><meta name=twitter:card content="summary"><meta name=twitter:title content="Prerequisites"><meta name=twitter:description content="Prerequisites to install OpenServerless This page lists [...]
You can install OpenServerless:
for development in a single node environment, either in your local machine or in a Linux server.
for production, in a multi node environment provided by a Kubernetes cluster.
-Single Node development installation For development purposes, you can install a single node OpenServerless deployment in the following environments as soon as the following requirements are satisfied:"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script [...]
+Single Node development installation For development purposes, you can install a single node OpenServerless deployment in the following environments as soon as the following requirements are satisfied:"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/>Return to the regular view of this page</a>.</p></div><h1 class=title>Prerequisites</h1><ul><li>1: <a href=#pg-0224021be1c39f3dd5683066e33d007c>Local Docker</a></li><ul></ul><li>2: <a href=#pg-b0ef4b2e79b17c0bf42df9cbc4da7029>Linux Server</a></li><ul><li>2.1: <a href=#pg-c8f8a7091cc35f968fc5e121e51c459b>SSH and Sudo</a></li><ul></ul><li>2.2: <a href=#pg-7de93c022dce0399d0fb529ba96bc7e6 [...]
environments.</p><p>You can install OpenServerless:</p><ul><li><p>for <strong>development</strong> in a <a href=/docs/installation/prereq/#single-node-development-installation>single node</a> environment,
either in your local machine or in a Linux server.</p></li><li><p>for <strong>production</strong>, in a <a href=/docs/installation/prereq/#multi-node-production-installation>multi node</a> environment
@@ -64,7 +64,7 @@ then <a href=/docs/installation/prereq/server/generic/>configure it</a></p></li>
install <a href=/docs/installation/prereq/server/k3s/>K3S</a> or
<a href=/docs/installation/prereq/server/mk8s/>MicroK8S</a> in it.</p><p>Once you have configured you server, you can proceed
<a href=/docs/installation/configure/>configuring OpenServerless</a> for the installation.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-c8f8a7091cc35f968fc5e121e51c459b>2.1 - SSH and Sudo</h1><div class=lead>General prerequisites to install OpenServerless</div><h2 id=configure-a-generic-linux-server-to-install-openserverless>Configure a generic Linux server to install OpenServerless</h2><p>If you have access to a generic Linux server, to be able to install
-Nuvolaris it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
+OpenServerless it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
for information how to create a <a href=/docs/installation/prereq/server/generic/#sshkey>sshkey</a>,
<a href=/docs/installation/prereq/server/generic/#sudo>configure sudo</a> and <a href=/docs/installation/prereq/server/generic/#firewall>open the firewall</a></p><h3 id=sshkey>Installing a public SSH key</h3><p>To connect to a server without a password using <code>openssh</code> (used by the
installer), you need a couple of files called <strong>ssh keys</strong>.</p><p>You can generate them on the command line using this command:</p><pre><code>ssh-keygen
diff --git a/docs/installation/prereq/docker/_print/index.html b/docs/installation/prereq/docker/_print/index.html
index 4e66f8c..eb01a2f 100644
--- a/docs/installation/prereq/docker/_print/index.html
+++ b/docs/installation/prereq/docker/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/docker/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/docker/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href= [...]
-<meta name=description content="Install OpenServerless with Docker locally"><meta property="og:url" content="/docs/installation/prereq/docker/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Local Docker"><meta property="og:description" content="Install OpenServerless with Docker locally"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Local Docker"><meta itemprop=descriptio [...]
+<meta name=description content="Install OpenServerless with Docker locally"><meta property="og:url" content="/docs/installation/prereq/docker/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Local Docker"><meta property="og:description" content="Install OpenServerless with Docker locally"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Local Docker"><meta itemprop=descriptio [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/docker/>Return to the regular view of this page</a>.</p></div><h1 class=title>Local Docker</h1><div class=lead>Install OpenServerless with Docker locally</div><ul></ul><div class=content><h2 id=prerequisites-to-install-openserverless-with-docker>Prerequisites to install OpenServerless with Docker</h2><p>You can install OpenServerless on your local machine using Docker. This
page lists the prerequisits.</p><p>First and before all you need a computer with at least 16 GB of memory
and 30GB of available space.</p><blockquote><p>❗ <strong>IMPORTANT</strong></p><p>8GB are definitely <strong>not enough</strong> to run OpenServerless on your local
diff --git a/docs/installation/prereq/docker/index.html b/docs/installation/prereq/docker/index.html
index 37256e3..4486943 100644
--- a/docs/installation/prereq/docker/index.html
+++ b/docs/installation/prereq/docker/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/docker/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/docker/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon hr [...]
-<meta name=description content="Install OpenServerless with Docker locally"><meta property="og:url" content="/docs/installation/prereq/docker/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Local Docker"><meta property="og:description" content="Install OpenServerless with Docker locally"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Local Docker"><meta itemprop=descriptio [...]
+<meta name=description content="Install OpenServerless with Docker locally"><meta property="og:url" content="/docs/installation/prereq/docker/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Local Docker"><meta property="og:description" content="Install OpenServerless with Docker locally"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Local Docker"><meta itemprop=descriptio [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -104,7 +104,7 @@ instead the <a href=https://docs.docker.com/engine/install/#server>Server Docker
Engine</a></p><p>On Linux, the Docker Engine for the server does not run in a virtual
machine, so it is faster and uses less memory.</p><p>Once installed, you can proceed
<a href=/docs/installation/configure/>configuring OpenServerless</a> for the installation.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answe [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/index.html b/docs/installation/prereq/index.html
index c56cebf..6e0ddf6 100644
--- a/docs/installation/prereq/index.html
+++ b/docs/installation/prereq/index.html
@@ -7,11 +7,11 @@ Single Node development installation For development purposes, you can install a
You can install OpenServerless:
for development in a single node environment, either in your local machine or in a Linux server.
for production, in a multi node environment provided by a Kubernetes cluster.
-Single Node development installation For development purposes, you can install a single node OpenServerless deployment in the following environments as soon as the following requirements are satisfied:"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="235"><meta name=twitter:card content="summary"><meta name=twitter:title content="Prerequisites"><meta name=twitter:description content="Prerequisites to install OpenServerless This page lists [...]
+Single Node development installation For development purposes, you can install a single node OpenServerless deployment in the following environments as soon as the following requirements are satisfied:"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="235"><meta name=twitter:card content="summary"><meta name=twitter:title content="Prerequisites"><meta name=twitter:description content="Prerequisites to install OpenServerless This page lists [...]
You can install OpenServerless:
for development in a single node environment, either in your local machine or in a Linux server.
for production, in a multi node environment provided by a Kubernetes cluster.
-Single Node development installation For development purposes, you can install a single node OpenServerless deployment in the following environments as soon as the following requirements are satisfied:"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script [...]
+Single Node development installation For development purposes, you can install a single node OpenServerless deployment in the following environments as soon as the following requirements are satisfied:"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -113,7 +113,7 @@ accessible with its <code>kubeconfig</code> file.</p><p>If you have such a clust
support for provisioning a suitable cluster that satisfied our
requirements for the following Kubernetes environments:</p><ul><li><p><a href=/docs/installation/prereq/kubernetes/eks/>EKS in Amazon AWS</a></p></li><li><p><a href=/docs/installation/prereq/kubernetes/aks/>AKS in Microsoft Azure</a></p></li><li><p><a>GKE in Google Cloud</a></p></li><li><p><a>RedHat OpenShift</a></p></li></ul><p>Once you have a suitable Kubernetes cluster, you can proceed
<a href=/docs/installation/install/>installing OpenServerless</a>.</p><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/installation/prereq/docker/>Local Docker</a></h5><p>Install OpenServerless with Docker locally</p></div><div class=entry><h5><a href=/docs/installation/prereq/server/>Linux Server</a></h5><p>Install OpenServerless in a Linux server</p></div><div class=entry><h5><a href=/docs/installation/prereq/kubernetes/>Kubernetes Cluster</a></h5><p>Ins [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/kubernetes/_print/index.html b/docs/installation/prereq/kubernetes/_print/index.html
index f224b4c..0ea37b8 100644
--- a/docs/installation/prereq/kubernetes/_print/index.html
+++ b/docs/installation/prereq/kubernetes/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/kubernetes/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/kubernetes/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-ic [...]
-<meta name=description content="Install OpenServerless in a Kubernetes cluster"><meta property="og:url" content="/docs/installation/prereq/kubernetes/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Kubernetes Cluster"><meta property="og:description" content="Install OpenServerless in a Kubernetes cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Kubernetes Cluster">< [...]
+<meta name=description content="Install OpenServerless in a Kubernetes cluster"><meta property="og:url" content="/docs/installation/prereq/kubernetes/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Kubernetes Cluster"><meta property="og:description" content="Install OpenServerless in a Kubernetes cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Kubernetes Cluster">< [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/kubernetes/>Return to the regular view of this page</a>.</p></div><h1 class=title>Kubernetes Cluster</h1><div class=lead>Install OpenServerless in a Kubernetes cluster</div><ul><li>1: <a href=#pg-1fd119711d8fba54dc56350b34daad88>Amazon EKS</a></li><ul></ul><li>2: <a href=#pg-c5304e0f61e6fb87af4b9940c2922fec>Azure AKS</a></li><ul></ul><li>3: <a href=#pg-e0ed70c138e5d50c8207cdcc1a07f4e0>G [...]
<a href=/docs/installation/prereq/kubernetes/cluster/>satisfy some requirements</a>.</p><p>Kubernetes clusters are available pre-built from a variety of cloud
providers. We provide with our <code>ops</code> tool the commands to install a
diff --git a/docs/installation/prereq/kubernetes/aks/_print/index.html b/docs/installation/prereq/kubernetes/aks/_print/index.html
index cc364d9..6456a53 100644
--- a/docs/installation/prereq/kubernetes/aks/_print/index.html
+++ b/docs/installation/prereq/kubernetes/aks/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/kubernetes/aks/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/kubernetes/aks/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple- [...]
-<meta name=description content="Prerequisites for Azure AKS"><meta property="og:url" content="/docs/installation/prereq/kubernetes/aks/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Azure AKS"><meta property="og:description" content="Prerequisites for Azure AKS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Azure AKS"><meta itemprop=description content="Prerequisites for [...]
+<meta name=description content="Prerequisites for Azure AKS"><meta property="og:url" content="/docs/installation/prereq/kubernetes/aks/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Azure AKS"><meta property="og:description" content="Prerequisites for Azure AKS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Azure AKS"><meta itemprop=description content="Prerequisites for [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/kubernetes/aks/>Return to the regular view of this page</a>.</p></div><h1 class=title>Azure AKS</h1><div class=lead>Prerequisites for Azure AKS</div><ul></ul><div class=content><h2 id=prerequisites-to-install-openserverless-in-an-azure-aks-cluster>Prerequisites to install OpenServerless in an Azure AKS Cluster</h2><p><a href=https://aws.amazon.com/eks/>Azure AKS</a> is a pre-built Kubernetes
cluster offered by the cloud provider <a href=https://azure.microsoft.com/>Microsoft Azure</a>.</p><p>You can create an AKS Cluster in Microsoft Azure for installing using
OpenServerless using <a href=/docs/installation/prereq/kubernetes/aks/#download.adoc>ops</a> as follows:</p><ol><li><p>install <code>az</code>, the <a href=/docs/installation/prereq/kubernetes/aks/#install-cli>Azure CLI</a></p></li><li><p><a href=/docs/installation/prereq/kubernetes/aks/#configure>configure AKS</a></p></li><li><p><a href=/docs/installation/prereq/kubernetes/aks/#provision>provision AKS</a></p></li><li><p>optionally, retrieve the <a href=/docs/installation/prereq/kubernet [...]
diff --git a/docs/installation/prereq/kubernetes/aks/index.html b/docs/installation/prereq/kubernetes/aks/index.html
index 108b580..0e06905 100644
--- a/docs/installation/prereq/kubernetes/aks/index.html
+++ b/docs/installation/prereq/kubernetes/aks/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/kubernetes/aks/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/kubernetes/aks/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=app [...]
-<meta name=description content="Prerequisites for Azure AKS"><meta property="og:url" content="/docs/installation/prereq/kubernetes/aks/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Azure AKS"><meta property="og:description" content="Prerequisites for Azure AKS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Azure AKS"><meta itemprop=description content="Prerequisites for [...]
+<meta name=description content="Prerequisites for Azure AKS"><meta property="og:url" content="/docs/installation/prereq/kubernetes/aks/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Azure AKS"><meta property="og:description" content="Prerequisites for Azure AKS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Azure AKS"><meta itemprop=description content="Prerequisites for [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -140,7 +140,7 @@ the load balancer.</p><p>You can read this with the command:</p><pre><code>ops c
<a href=/docs/installation/configure/dns/>configuring a dns name</a> for your cluster.</p><h3 id=additional-commands>Additional Commands</h3><p>You can delete the created cluster with: <code>ops cloud aks delete</code></p><p>You can extract again the cluster configuration, if you lose it,
reconfiguring the cluster and then using the command
<code>nuv cloud aks kubeconfig</code>.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/kubernetes/cluster/_print/index.html b/docs/installation/prereq/kubernetes/cluster/_print/index.html
index 13e9844..246d59f 100644
--- a/docs/installation/prereq/kubernetes/cluster/_print/index.html
+++ b/docs/installation/prereq/kubernetes/cluster/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/kubernetes/cluster/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/kubernetes/cluster/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link re [...]
-<meta name=description content="Prerequisites for all Kubernetes"><meta property="og:url" content="/docs/installation/prereq/kubernetes/cluster/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Generic Kubernetes"><meta property="og:description" content="Prerequisites for all Kubernetes"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Generic Kubernetes"><meta itemprop=descri [...]
+<meta name=description content="Prerequisites for all Kubernetes"><meta property="og:url" content="/docs/installation/prereq/kubernetes/cluster/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Generic Kubernetes"><meta property="og:description" content="Prerequisites for all Kubernetes"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Generic Kubernetes"><meta itemprop=descri [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/kubernetes/cluster/>Return to the regular view of this page</a>.</p></div><h1 class=title>Generic Kubernetes</h1><div class=lead>Prerequisites for all Kubernetes</div><ul></ul><div class=content><h2 id=kubernetes-cluster-requirements>Kubernetes Cluster requirements</h2><p>OpenServerless installs in any Kubernetes cluster which satisfies the
following requirements:</p><ul><li><p><code>cluster-admin</code> access</p></li><li><p>at least 3 worker nodes with 4GB of memory each</p></li><li><p>support for block storage configured as default storage class</p></li><li><p>support for LoadBalancer services</p></li><li><p>the <a href=https://github.com/kubernetes/ingress-nginx>nginx ingress</a>
already installed</p></li><li><p>the <a href=https://cert-manager.io/>cert manager</a> already installed</p></li></ul><p>Once you have such a cluster, you need to retrieve the IP address of the
diff --git a/docs/installation/prereq/kubernetes/cluster/index.html b/docs/installation/prereq/kubernetes/cluster/index.html
index e9beb19..e82bf95 100644
--- a/docs/installation/prereq/kubernetes/cluster/index.html
+++ b/docs/installation/prereq/kubernetes/cluster/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/kubernetes/cluster/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/kubernetes/cluster/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link [...]
-<meta name=description content="Prerequisites for all Kubernetes"><meta property="og:url" content="/docs/installation/prereq/kubernetes/cluster/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Generic Kubernetes"><meta property="og:description" content="Prerequisites for all Kubernetes"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Generic Kubernetes"><meta itemprop=descri [...]
+<meta name=description content="Prerequisites for all Kubernetes"><meta property="og:url" content="/docs/installation/prereq/kubernetes/cluster/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Generic Kubernetes"><meta property="og:description" content="Prerequisites for all Kubernetes"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Generic Kubernetes"><meta itemprop=descri [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -96,7 +96,7 @@ change the command accordingly.</p><p>The result should be something like this:<
ingress-nginx-controller LoadBalancer 10.0.9.99 20.62.156.19 80:30898/TCP,443:31451/TCP 4d1h
</code></pre><p>Take note of the value under <strong>EXTERNAL-IP</strong> as you need it in the next
step of installation, <a href=/docs/installation/configure/dns/>configuring DNS</a>.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes" [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/kubernetes/eks/_print/index.html b/docs/installation/prereq/kubernetes/eks/_print/index.html
index 2ad6de3..8f8144b 100644
--- a/docs/installation/prereq/kubernetes/eks/_print/index.html
+++ b/docs/installation/prereq/kubernetes/eks/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/kubernetes/eks/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/kubernetes/eks/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple- [...]
-<meta name=description content="Prerequisites for Amazon EKS"><meta property="og:url" content="/docs/installation/prereq/kubernetes/eks/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Amazon EKS"><meta property="og:description" content="Prerequisites for Amazon EKS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Amazon EKS"><meta itemprop=description content="Prerequisites [...]
+<meta name=description content="Prerequisites for Amazon EKS"><meta property="og:url" content="/docs/installation/prereq/kubernetes/eks/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Amazon EKS"><meta property="og:description" content="Prerequisites for Amazon EKS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Amazon EKS"><meta itemprop=description content="Prerequisites [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/kubernetes/eks/>Return to the regular view of this page</a>.</p></div><h1 class=title>Amazon EKS</h1><div class=lead>Prerequisites for Amazon EKS</div><ul></ul><div class=content><h2 id=prerequisites-to-install-openserverless-in-an-amazon-eks-cluster>Prerequisites to install OpenServerless in an Amazon EKS Cluster</h2><p><a href=https://aws.amazon.com/eks/>Amazon EKS</a> is a pre-built [...]
cluster offered by the cloud provider <a href=https://aws.amazon.com/>Amazon Web
Services</a>.</p><p>You can create an EKS Cluster in Amazon AWS for installing using
diff --git a/docs/installation/prereq/kubernetes/eks/index.html b/docs/installation/prereq/kubernetes/eks/index.html
index dd77790..7d78ecb 100644
--- a/docs/installation/prereq/kubernetes/eks/index.html
+++ b/docs/installation/prereq/kubernetes/eks/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/kubernetes/eks/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/kubernetes/eks/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=app [...]
-<meta name=description content="Prerequisites for Amazon EKS"><meta property="og:url" content="/docs/installation/prereq/kubernetes/eks/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Amazon EKS"><meta property="og:description" content="Prerequisites for Amazon EKS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Amazon EKS"><meta itemprop=description content="Prerequisites [...]
+<meta name=description content="Prerequisites for Amazon EKS"><meta property="og:url" content="/docs/installation/prereq/kubernetes/eks/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Amazon EKS"><meta property="og:description" content="Prerequisites for Amazon EKS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Amazon EKS"><meta itemprop=description content="Prerequisites [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -158,7 +158,7 @@ the load balancer.</p><p>You can read this with the command:</p><pre><code>ops c
<a href=/docs/installation/configure/dns/>configuring a dns name</a> for your cluster.</p><h3 id=additional-commands>Additional Commands</h3><p>You can delete the created cluster with: <code>ops cloud eks delete</code></p><p>You can extract again the cluster configuration, if you lose it,
reconfiguring the cluster and then using the command
<code>ops cloud eks kubeconfig</code>.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/kubernetes/index.html b/docs/installation/prereq/kubernetes/index.html
index 13c1129..353bc0f 100644
--- a/docs/installation/prereq/kubernetes/index.html
+++ b/docs/installation/prereq/kubernetes/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/kubernetes/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/kubernetes/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch [...]
-<meta name=description content="Install OpenServerless in a Kubernetes cluster"><meta property="og:url" content="/docs/installation/prereq/kubernetes/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Kubernetes Cluster"><meta property="og:description" content="Install OpenServerless in a Kubernetes cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Kubernetes Cluster">< [...]
+<meta name=description content="Install OpenServerless in a Kubernetes cluster"><meta property="og:url" content="/docs/installation/prereq/kubernetes/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Kubernetes Cluster"><meta property="og:description" content="Install OpenServerless in a Kubernetes cluster"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Kubernetes Cluster">< [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -99,7 +99,7 @@ one with out commands or provisioning one by yourself, you can proceed
<a href=/docs/installation/configure/>configuring the installation</a> and then
<a href=/docs/installation/install/cluster/>installing OpenServerless</a> in the
cluster.</p><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/installation/prereq/kubernetes/eks/>Amazon EKS</a></h5><p>Prerequisites for Amazon EKS</p></div><div class=entry><h5><a href=/docs/installation/prereq/kubernetes/aks/>Azure AKS</a></h5><p>Prerequisites for Azure AKS</p></div><div class=entry><h5><a href=/docs/installation/prereq/kubernetes/cluster/>Generic Kubernetes</a></h5><p>Prerequisites for all Kubernetes</p></div></div><style>.feedback--ans [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/server/_print/index.html b/docs/installation/prereq/server/_print/index.html
index 6fab193..af0fece 100644
--- a/docs/installation/prereq/server/_print/index.html
+++ b/docs/installation/prereq/server/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/server/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href= [...]
-<meta name=description content="Install OpenServerless in a Linux server"><meta property="og:url" content="/docs/installation/prereq/server/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Linux Server"><meta property="og:description" content="Install OpenServerless in a Linux server"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Linux Server"><meta itemprop=description co [...]
+<meta name=description content="Install OpenServerless in a Linux server"><meta property="og:url" content="/docs/installation/prereq/server/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Linux Server"><meta property="og:description" content="Install OpenServerless in a Linux server"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Linux Server"><meta itemprop=description co [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/server/>Return to the regular view of this page</a>.</p></div><h1 class=title>Linux Server</h1><div class=lead>Install OpenServerless in a Linux server</div><ul><li>1: <a href=#pg-c8f8a7091cc35f968fc5e121e51c459b>SSH and Sudo</a></li><ul></ul><li>2: <a href=#pg-7de93c022dce0399d0fb529ba96bc7e6>Server on AWS</a></li><ul></ul><li>3: <a href=#pg-3a59e283e51e41b6d5b36b0ca31c690c>Server on A [...]
on in Internet running a Linux distribution, with the following
requirements:</p><ol><li><p>You know the <strong>IP address or DNS name</strong> of the server on Internet or
@@ -17,7 +17,7 @@ then <a href=/docs/installation/prereq/server/generic/>configure it</a></p></li>
install <a href=/docs/installation/prereq/server/k3s/>K3S</a> or
<a href=/docs/installation/prereq/server/mk8s/>MicroK8S</a> in it.</p><p>Once you have configured you server, you can proceed
<a href=/docs/installation/configure/>configuring OpenServerless</a> for the installation.</p></div></div><div class=td-content style=page-break-before:always><h1 id=pg-c8f8a7091cc35f968fc5e121e51c459b>1 - SSH and Sudo</h1><div class=lead>General prerequisites to install OpenServerless</div><h2 id=configure-a-generic-linux-server-to-install-openserverless>Configure a generic Linux server to install OpenServerless</h2><p>If you have access to a generic Linux server, to be able to install
-Nuvolaris it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
+OpenServerless it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
for information how to create a <a href=/docs/installation/prereq/server/generic/#sshkey>sshkey</a>,
<a href=/docs/installation/prereq/server/generic/#sudo>configure sudo</a> and <a href=/docs/installation/prereq/server/generic/#firewall>open the firewall</a></p><h3 id=sshkey>Installing a public SSH key</h3><p>To connect to a server without a password using <code>openssh</code> (used by the
installer), you need a couple of files called <strong>ssh keys</strong>.</p><p>You can generate them on the command line using this command:</p><pre><code>ssh-keygen
diff --git a/docs/installation/prereq/server/aws/_print/index.html b/docs/installation/prereq/server/aws/_print/index.html
index c04dd7d..0789731 100644
--- a/docs/installation/prereq/server/aws/_print/index.html
+++ b/docs/installation/prereq/server/aws/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/server/aws/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/aws/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-ic [...]
-<meta name=description content="Prerequisites to install OpenServerless in AWS"><meta property="og:url" content="/docs/installation/prereq/server/aws/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Server on AWS"><meta property="og:description" content="Prerequisites to install OpenServerless in AWS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Server on AWS"><meta itemp [...]
+<meta name=description content="Prerequisites to install OpenServerless in AWS"><meta property="og:url" content="/docs/installation/prereq/server/aws/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Server on AWS"><meta property="og:description" content="Prerequisites to install OpenServerless in AWS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Server on AWS"><meta itemp [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/server/aws/>Return to the regular view of this page</a>.</p></div><h1 class=title>Server on AWS</h1><div class=lead>Prerequisites to install OpenServerless in AWS</div><ul></ul><div class=content><h2 id=provision-a-linux-server-in-amazon-web-services>Provision a Linux server in Amazon Web Services</h2><p>You can provision a server suitable to install OpenServerless in cloud
provider <a href=https://aws.amazon.com/>Amazon Web Services</a>
<a href=/docs/installation/prereq/server/aws/#download.adoc>ops</a> as follows:</p><ol><li><p>install <code>aws</code>, the <a href=/docs/installation/prereq/server/aws/#install-cli>AWS CLI</a></p></li><li><p>get <a href=/docs/installation/prereq/server/aws/#get-credentials>Access and Secret Key</a></p></li><li><p><a href=/docs/installation/prereq/server/aws/#configure>configure AWS</a></p></li><li><p><a href=/docs/installation/prereq/server/aws/#provision>provision a server</a></p></li> [...]
diff --git a/docs/installation/prereq/server/aws/index.html b/docs/installation/prereq/server/aws/index.html
index cb3d7c1..cf57457 100644
--- a/docs/installation/prereq/server/aws/index.html
+++ b/docs/installation/prereq/server/aws/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/server/aws/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/aws/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch [...]
-<meta name=description content="Prerequisites to install OpenServerless in AWS"><meta property="og:url" content="/docs/installation/prereq/server/aws/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Server on AWS"><meta property="og:description" content="Prerequisites to install OpenServerless in AWS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Server on AWS"><meta itemp [...]
+<meta name=description content="Prerequisites to install OpenServerless in AWS"><meta property="og:url" content="/docs/installation/prereq/server/aws/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Server on AWS"><meta property="og:description" content="Prerequisites to install OpenServerless in AWS"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Server on AWS"><meta itemp [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -151,7 +151,7 @@ specified in configuration.</p><p>You can also:</p><ol><li><p>list servers you c
<code>ops cloud aws vm-delete <server-name></code></p></li></ol><h3 id=retrieve-ip>Retrieve IP</h3><p>The server will be provisioned with an IP address assigned by AWS.</p><p>You can read the IP address of your server with</p><pre><code>ops cloud aws vm-getip <server-name>
</code></pre><p>You need this IP when <a href=/docs/installation/configure/dns/>configuring a DNS name</a> for
the server.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/server/azure/_print/index.html b/docs/installation/prereq/server/azure/_print/index.html
index 7eab55f..cbf95b9 100644
--- a/docs/installation/prereq/server/azure/_print/index.html
+++ b/docs/installation/prereq/server/azure/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/server/azure/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/azure/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touc [...]
-<meta name=description content="Prerequisites to install OpenServerless in Azure"><meta property="og:url" content="/docs/installation/prereq/server/azure/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Server on Azure"><meta property="og:description" content="Prerequisites to install OpenServerless in Azure"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Server on Azure">< [...]
+<meta name=description content="Prerequisites to install OpenServerless in Azure"><meta property="og:url" content="/docs/installation/prereq/server/azure/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Server on Azure"><meta property="og:description" content="Prerequisites to install OpenServerless in Azure"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Server on Azure">< [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/server/azure/>Return to the regular view of this page</a>.</p></div><h1 class=title>Server on Azure</h1><div class=lead>Prerequisites to install OpenServerless in Azure</div><ul></ul><div class=content><h2 id=provision-a-linux-server-in-azure-cloud-platform>Provision a Linux server in Azure Cloud Platform</h2><p>You can provision a server suitable to install OpenServerless in cloud
provider <a href=https://azure.microsoft.com/>Azure</a>
<a href=/docs/installation/prereq/server/azure/#download.adoc>ops</a> as follows:</p><ol><li><p>install <code>az</code>, the <a href=/docs/installation/prereq/server/azure/#install-cli>Azure CLI</a></p></li><li><p>get <a href=/docs/installation/prereq/server/azure/#connect-subscription>Access and Secret Key</a></p></li><li><p><a href=/docs/installation/prereq/server/azure/#configure>configure Azure</a></p></li><li><p><a href=/docs/installation/prereq/server/azure/#provision>provision a s [...]
diff --git a/docs/installation/prereq/server/azure/index.html b/docs/installation/prereq/server/azure/index.html
index b48470f..c507dcd 100644
--- a/docs/installation/prereq/server/azure/index.html
+++ b/docs/installation/prereq/server/azure/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/server/azure/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/azure/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-t [...]
-<meta name=description content="Prerequisites to install OpenServerless in Azure"><meta property="og:url" content="/docs/installation/prereq/server/azure/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Server on Azure"><meta property="og:description" content="Prerequisites to install OpenServerless in Azure"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Server on Azure">< [...]
+<meta name=description content="Prerequisites to install OpenServerless in Azure"><meta property="og:url" content="/docs/installation/prereq/server/azure/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Server on Azure"><meta property="og:description" content="Prerequisites to install OpenServerless in Azure"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Server on Azure">< [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -151,7 +151,7 @@ you specified in configuration.</p><p>You can also:</p><ol><li><p>list servers y
Cloud.</p><p>You can read the IP address of your server with</p><pre><code>ops cloud azcloud vm-getip <server-name>
</code></pre><p>You need this IP when <a href=/docs/installation/configure/dns/>configuring a DNS name</a> for
the server.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/server/generic/_print/index.html b/docs/installation/prereq/server/generic/_print/index.html
index 340e918..242d69a 100644
--- a/docs/installation/prereq/server/generic/_print/index.html
+++ b/docs/installation/prereq/server/generic/_print/index.html
@@ -1,7 +1,7 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/server/generic/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/generic/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple- [...]
-<meta name=description content="General prerequisites to install OpenServerless"><meta property="og:url" content="/docs/installation/prereq/server/generic/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="SSH and Sudo"><meta property="og:description" content="General prerequisites to install OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="SSH and Sudo"><meta i [...]
+<meta name=description content="General prerequisites to install OpenServerless"><meta property="og:url" content="/docs/installation/prereq/server/generic/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="SSH and Sudo"><meta property="og:description" content="General prerequisites to install OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="SSH and Sudo"><meta i [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/server/generic/>Return to the regular view of this page</a>.</p></div><h1 class=title>SSH and Sudo</h1><div class=lead>General prerequisites to install OpenServerless</div><ul></ul><div class=content><h2 id=configure-a-generic-linux-server-to-install-openserverless>Configure a generic Linux server to install OpenServerless</h2><p>If you have access to a generic Linux server, to be able [...]
-Nuvolaris it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
+OpenServerless it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
for information how to create a <a href=/docs/installation/prereq/server/generic/#sshkey>sshkey</a>,
<a href=/docs/installation/prereq/server/generic/#sudo>configure sudo</a> and <a href=/docs/installation/prereq/server/generic/#firewall>open the firewall</a></p><h3 id=sshkey>Installing a public SSH key</h3><p>To connect to a server without a password using <code>openssh</code> (used by the
installer), you need a couple of files called <strong>ssh keys</strong>.</p><p>You can generate them on the command line using this command:</p><pre><code>ssh-keygen
diff --git a/docs/installation/prereq/server/generic/index.html b/docs/installation/prereq/server/generic/index.html
index de106c7..5b296ea 100644
--- a/docs/installation/prereq/server/generic/index.html
+++ b/docs/installation/prereq/server/generic/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/server/generic/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/generic/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=app [...]
-<meta name=description content="General prerequisites to install OpenServerless"><meta property="og:url" content="/docs/installation/prereq/server/generic/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="SSH and Sudo"><meta property="og:description" content="General prerequisites to install OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="SSH and Sudo"><meta i [...]
+<meta name=description content="General prerequisites to install OpenServerless"><meta property="og:url" content="/docs/installation/prereq/server/generic/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="SSH and Sudo"><meta property="og:description" content="General prerequisites to install OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="SSH and Sudo"><meta i [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -85,7 +85,7 @@
<a href="https://github.com/apache/openserverless/issues/issues/new?title=SSH%20and%20Sudo" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
<a id=print href=/docs/installation/prereq/server/generic/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#configure-a-generic-linux-server-to-install-openserverless>Configure a generic Linux server to install OpenServerless</a><ul><li><a href=#sshkey>Installing a public SSH key</a></li><li><a href=#sudo>Configure Sudo</a></li><li><a href=#firewall>Open the firewall</a></li></ul></li></ul></nav></div> [...]
-Nuvolaris it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
+OpenServerless it needs to:</p><ol><li><p>be accessible without a password with <code>ssh</code></p></li><li><p>be able to run root commands without a password with <code>sudo</code></p></li><li><p>open the ports 80, 443 and 6443 or 16443</p></li></ol><p>If your server does not already satisfy those requirements, read below
for information how to create a <a href=/docs/installation/prereq/server/generic/#sshkey>sshkey</a>,
<a href=/docs/installation/prereq/server/generic/#sudo>configure sudo</a> and <a href=/docs/installation/prereq/server/generic/#firewall>open the firewall</a></p><h3 id=sshkey>Installing a public SSH key</h3><p>To connect to a server without a password using <code>openssh</code> (used by the
installer), you need a couple of files called <strong>ssh keys</strong>.</p><p>You can generate them on the command line using this command:</p><pre><code>ssh-keygen
@@ -108,7 +108,7 @@ execute <code>sudo</code> with a password.</p><p>Type either <code>su</code> or
documentation of your cloud provider or contact your system
administrator, as there are no common procedures and they depends on the
cloud provider.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/server/index.html b/docs/installation/prereq/server/index.html
index ec060be..138af12 100644
--- a/docs/installation/prereq/server/index.html
+++ b/docs/installation/prereq/server/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/server/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon hr [...]
-<meta name=description content="Install OpenServerless in a Linux server"><meta property="og:url" content="/docs/installation/prereq/server/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Linux Server"><meta property="og:description" content="Install OpenServerless in a Linux server"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Linux Server"><meta itemprop=description co [...]
+<meta name=description content="Install OpenServerless in a Linux server"><meta property="og:url" content="/docs/installation/prereq/server/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Linux Server"><meta property="og:description" content="Install OpenServerless in a Linux server"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Linux Server"><meta itemprop=description co [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -101,7 +101,7 @@ then <a href=/docs/installation/prereq/server/generic/>configure it</a></p></li>
install <a href=/docs/installation/prereq/server/k3s/>K3S</a> or
<a href=/docs/installation/prereq/server/mk8s/>MicroK8S</a> in it.</p><p>Once you have configured you server, you can proceed
<a href=/docs/installation/configure/>configuring OpenServerless</a> for the installation.</p><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/installation/prereq/server/generic/>SSH and Sudo</a></h5><p>General prerequisites to install OpenServerless</p></div><div class=entry><h5><a href=/docs/installation/prereq/server/aws/>Server on AWS</a></h5><p>Prerequisites to install OpenServerless in AWS</p></div><div class=entry><h5><a href=/docs/installation/prer [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/server/k3s/_print/index.html b/docs/installation/prereq/server/k3s/_print/index.html
index ad54f70..14be786 100644
--- a/docs/installation/prereq/server/k3s/_print/index.html
+++ b/docs/installation/prereq/server/k3s/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/server/k3s/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/k3s/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-ic [...]
-<meta name=description content="Prerequisites to install OpenServerless in K3S"><meta property="og:url" content="/docs/installation/prereq/server/k3s/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Install K3S"><meta property="og:description" content="Prerequisites to install OpenServerless in K3S"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Install K3S"><meta itemprop= [...]
+<meta name=description content="Prerequisites to install OpenServerless in K3S"><meta property="og:url" content="/docs/installation/prereq/server/k3s/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Install K3S"><meta property="og:description" content="Prerequisites to install OpenServerless in K3S"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Install K3S"><meta itemprop= [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/server/k3s/>Return to the regular view of this page</a>.</p></div><h1 class=title>Install K3S</h1><div class=lead>Prerequisites to install OpenServerless in K3S</div><ul></ul><div class=content><h2 id=install-k3s-in-a-server>Install K3S in a server</h2><p>You can install OpenServerless as <a href=/docs/installation/prereq/server/k3s/#../../../install/server/index.adoc>described
here</a>, and you do not need to
install any Kubernetes in it, as it is installed as part of the
diff --git a/docs/installation/prereq/server/k3s/index.html b/docs/installation/prereq/server/k3s/index.html
index 6b38a6e..1b50f96 100644
--- a/docs/installation/prereq/server/k3s/index.html
+++ b/docs/installation/prereq/server/k3s/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/server/k3s/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/k3s/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch [...]
-<meta name=description content="Prerequisites to install OpenServerless in K3S"><meta property="og:url" content="/docs/installation/prereq/server/k3s/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Install K3S"><meta property="og:description" content="Prerequisites to install OpenServerless in K3S"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Install K3S"><meta itemprop= [...]
+<meta name=description content="Prerequisites to install OpenServerless in K3S"><meta property="og:url" content="/docs/installation/prereq/server/k3s/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Install K3S"><meta property="og:description" content="Prerequisites to install OpenServerless in K3S"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Install K3S"><meta itemprop= [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -103,7 +103,7 @@ as a server.</p></blockquote><p>The installation retrieves also a Kubernetes con
can proceed to installing it without any other step involved.</p><h3 id=additional-commands>Additional Commands</h3><p>In addition to <code>create</code> the following subcommands are also available:</p><ul><li><p><code>ops cloud k3s delete <server> [<username>]</code>:
uninstall K3S from the server</p></li><li><p><code>ops cloud k3s kubeconfig <server> [<username>]</code>:
retrieve the kubeconfig from the K3S server</p></li><li><p><code>ops cloud k3s info</code>: some information about the server</p></li><li><p><code>ops cloud k3s status</code>: status of the server</p></li></ul><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p cla [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/prereq/server/mk8s/_print/index.html b/docs/installation/prereq/server/mk8s/_print/index.html
index 915c363..9ba08cf 100644
--- a/docs/installation/prereq/server/mk8s/_print/index.html
+++ b/docs/installation/prereq/server/mk8s/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/prereq/server/mk8s/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/mk8s/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch- [...]
-<meta name=description content="Prerequisites to install OpenServerless in K8S"><meta property="og:url" content="/docs/installation/prereq/server/mk8s/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Install MicroK8S"><meta property="og:description" content="Prerequisites to install OpenServerless in K8S"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Install MicroK8S"><met [...]
+<meta name=description content="Prerequisites to install OpenServerless in K8S"><meta property="og:url" content="/docs/installation/prereq/server/mk8s/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Install MicroK8S"><meta property="og:description" content="Prerequisites to install OpenServerless in K8S"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Install MicroK8S"><met [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/prereq/server/mk8s/>Return to the regular view of this page</a>.</p></div><h1 class=title>Install MicroK8S</h1><div class=lead>Prerequisites to install OpenServerless in K8S</div><ul></ul><div class=content><h2 id=install-microk8s-in-a-server>Install MicroK8S in a server</h2><p>You can install OpenServerless as
<a href=/docs/installation/install/server/>described here</a> and you do not need to
install any Kubernetes in it, as it is installed as part of the procedure. In
diff --git a/docs/installation/prereq/server/mk8s/index.html b/docs/installation/prereq/server/mk8s/index.html
index a01c783..05511b0 100644
--- a/docs/installation/prereq/server/mk8s/index.html
+++ b/docs/installation/prereq/server/mk8s/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/prereq/server/mk8s/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/prereq/server/mk8s/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-tou [...]
-<meta name=description content="Prerequisites to install OpenServerless in K8S"><meta property="og:url" content="/docs/installation/prereq/server/mk8s/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Install MicroK8S"><meta property="og:description" content="Prerequisites to install OpenServerless in K8S"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Install MicroK8S"><met [...]
+<meta name=description content="Prerequisites to install OpenServerless in K8S"><meta property="og:url" content="/docs/installation/prereq/server/mk8s/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Install MicroK8S"><meta property="og:description" content="Prerequisites to install OpenServerless in K8S"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Install MicroK8S"><met [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -106,7 +106,7 @@ can proceed to installing it without any other step involved.</p><h3 id=addition
subcommands:</p><ul><li><p><code>ops cloud mk8s delete SERVER=<server> USERNAME=<username></code>:
uninstall K3S from the server</p></li><li><p><code>ops cloud mk8s kubeconfig SERVER=<server> USERNAME=<username></code>:
retrieve the kubeconfig from the MicroK8S server</p></li><li><p><code>ops cloud mk8s info</code>: informations about the server</p></li><li><p><code>ops cloud mk8s status</code>: status of the server</p></li></ul><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/installation/quickstart/_print/index.html b/docs/installation/quickstart/_print/index.html
index 724b97b..ac1ca82 100644
--- a/docs/installation/quickstart/_print/index.html
+++ b/docs/installation/quickstart/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/installation/quickstart/><link rel=alternate type=application/rss+xml href=/docs/installation/quickstart/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favic [...]
-<meta name=description content="Fast path to install a self-hosted OpenServerless"><meta property="og:url" content="/docs/installation/quickstart/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Quick Start"><meta property="og:description" content="Fast path to install a self-hosted OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Quick Start"><meta itemprop=d [...]
+<meta name=description content="Fast path to install a self-hosted OpenServerless"><meta property="og:url" content="/docs/installation/quickstart/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Quick Start"><meta property="og:description" content="Fast path to install a self-hosted OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Quick Start"><meta itemprop=d [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/installation/quickstart/>Return to the regular view of this page</a>.</p></div><h1 class=title>Quick Start</h1><div class=lead>Fast path to install a self-hosted OpenServerless</div><ul></ul><div class=content><h2 id=quick-start>Quick Start</h2><p>This is a quick start guide to the installation process, targeting
experienced users in a hurry.</p><p>It provides a high-level overview of the installation process, omitting
advanced of details. The missing pieces are covered in the rest of the
diff --git a/docs/installation/quickstart/index.html b/docs/installation/quickstart/index.html
index c618cf4..f20b266 100644
--- a/docs/installation/quickstart/index.html
+++ b/docs/installation/quickstart/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/installation/quickstart/_print/><link rel=alternate type=application/rss+xml href=/docs/installation/quickstart/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/fa [...]
-<meta name=description content="Fast path to install a self-hosted OpenServerless"><meta property="og:url" content="/docs/installation/quickstart/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Quick Start"><meta property="og:description" content="Fast path to install a self-hosted OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Quick Start"><meta itemprop=d [...]
+<meta name=description content="Fast path to install a self-hosted OpenServerless"><meta property="og:url" content="/docs/installation/quickstart/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Quick Start"><meta property="og:description" content="Fast path to install a self-hosted OpenServerless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Quick Start"><meta itemprop=d [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -158,7 +158,7 @@ cluster, by running this command:</p><pre><code>ops debug kube info
</code></pre><p>Wait until the process is complete and if there are no errors,
OpenServerless is installed and ready to go.</p><p>Once it is installed, you can proceed to read the
<a href=/docs/installation/quickstart/#../../tutorial/index.adoc>Tutorial</a> to learn how to code with it.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answe [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/_print/index.html b/docs/reference/_print/index.html
index b881379..6807e25 100644
--- a/docs/reference/_print/index.html
+++ b/docs/reference/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/><link rel=alternate type=application/rss+xml href=/docs/reference/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180 [...]
-<meta name=description content="OpenServerless Developer Guide"><meta property="og:url" content="/docs/reference/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Reference"><meta property="og:description" content="OpenServerless Developer Guide"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Reference"><meta itemprop=description content="OpenServerless Developer Guide"><met [...]
+<meta name=description content="OpenServerless Developer Guide"><meta property="og:url" content="/docs/reference/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Reference"><meta property="og:description" content="OpenServerless Developer Guide"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Reference"><meta itemprop=description content="OpenServerless Developer Guide"><met [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/>Return to the regular view of this page</a>.</p></div><h1 class=title>Reference</h1><div class=lead>OpenServerless Developer Guide</div><ul><li>1: <a href=#pg-74fdda9fa92a80e92e8b3d05dd0e8ba1>Advanced</a></li><ul><li>1.1: <a href=#pg-4e4418ead51c6c16751a09aaa9f7902c>Advanced CLI</a></li><ul></ul><li>1.2: <a href=#pg-84f68b8583b274cc8a7f9f04c649e1b4>Building your runtime</a></li><ul></ul><li>1.3: [...]
and the documentation in this section is derived for the official
OpenWhisk documentation.</p><p>In this sections we mostly document how to write <a href=/docs/reference/#actions.adoc><strong>actions</strong>
@@ -44,7 +44,7 @@ programming language</a>, originally developed
specifically to support the <a href=https://github.com/apache/openwhisk-runtime-go>OpenWhisk and OpenServerless Go language
runtime</a>. However, it
was written in a generic way such that it has since been adopted to
-implement OpenWhisk and Nuvolaris runtimes for Swift, PHP, Python, Rust,
+implement OpenWhisk and OpenServerless runtimes for Swift, PHP, Python, Rust,
Java, Ruby and Crystal. Even though it was developed with compiled
languages in mind it works equally well with scripting languages.</p><p>Using it, you can develop a new runtime in a fraction of the time needed
for authoring a full-fledged runtime from scratch. This is due to the
@@ -126,7 +126,7 @@ actionloop-demo-ruby-v2.6 latest df3e77c9cd8f 2 minutes ag
<code>actionloop-demo-ruby-v2.6</code>. However, despite having <code>Ruby</code> in the name,
internally it still is a <code>Python</code> language runtime which we will need to
change to one supporting <code>Ruby</code> as we continue in this tutorial.</p><h2 id=preparing-the-docker-environment>Preparing the Docker environment</h2><p>Our language runtime’s <code>Dockerfile</code> has the task of preparing an
-environment for executing OpenWhisk and Nuvolaris Actions. Using the
+environment for executing OpenWhisk and OpenServerless Actions. Using the
ActionLoop approach, we use a multistage Docker build to</p><ol><li><p>derive our OpenWhisk and OpenServerless language runtime from an existing
Docker image that has all the target language’s tools and libraries
for running functions authored in that language.</p><ul><li>In our case, we will reference the <code>ruby:2.6.2-alpine3.9</code> image
@@ -134,7 +134,7 @@ from the <a href=https://hub.docker.com/_/ruby>Official Docker Images for
Ruby</a> on Docker Hub.</li></ul></li><li><p>leverage the existing <code>openwhisk/actionlooop-v2</code> image on Docker Hub
from which we will “extract” the <em>ActionLoop</em> proxy (i.e. copy
<code>/bin/proxy</code> binary) our runtime will use to process Activation
-requests from the OpenWhisk and Nuvolaris platform and execute
+requests from the OpenWhisk and OpenServerless platform and execute
Actions by using the language’s tools and libraries from step #1.</p></li></ol><h2 id=repurpose-the-renamed-python-dockerfile-for-ruby-builds>Repurpose the renamed Python Dockerfile for Ruby builds</h2><p>Let’s edit the <code>ruby2.6/Dockerfile</code> to use the official Ruby image on
Docker Hub as our base image, instead of a Python image, and add our our
Ruby launcher script:</p><pre><code> FROM openwhisk/actionloop-v2:latest as builder
@@ -180,7 +180,7 @@ from main__ import main as main
require "./main__"
</code></pre><p><em>Note that you are free to decide the path and filename for the
function’s source code. In our examples, we chose a base filename that
-includes the word <code>"main"</code> (since it is OpenWhisk and Nuvolaris’s
+includes the word <code>"main"</code> (since it is OpenWhisk and OpenServerless
default function name) and append two underscores to better assure
uniqueness.</em></p><h4 id=open-file-descriptor-fd-3-for-function-results-output>Open File Descriptor (FD) 3 for function results output</h4><p>The <code>ActionLoop</code> proxy expects to read the results of invoking the
Action function from File Descriptor (FD) 3.</p><p>The existing Python:</p><pre><code>out = fdopen(3, "wb")
@@ -328,7 +328,7 @@ change:</p><pre><code> write_file("%s/exec" % tgt_dir, ""&qu
</code></pre><p>For an interpreted language that is all. We move the <code>src</code> folder in the
<code>bin</code>. For a compiled language instead, we may want to actually invoke
the compiler to produce the executable.</p><h2 id=debugging>Debugging</h2><p>Now that we have completed both the <code>launcher</code> and <code>compile</code> scripts, it
-is time to test them.</p><p>Here we will learn how to:</p><ol><li><p>enter in a test environment</p></li><li><p>simple smoke tests to check things work</p></li><li><p>writing the validation tests</p></li><li><p>testing the image in an actual OpenWhisk and Nuvolaris environment</p></li></ol><h3 id=entering-in-the-test-environment>Entering in the test environment</h3><p>In the starter kit, there is a <code>Makefile</code> that can help with our
+is time to test them.</p><p>Here we will learn how to:</p><ol><li><p>enter in a test environment</p></li><li><p>simple smoke tests to check things work</p></li><li><p>writing the validation tests</p></li><li><p>testing the image in an actual OpenWhisk and OpenServerless environment</p></li></ol><h3 id=entering-in-the-test-environment>Entering in the test environment</h3><p>In the starter kit, there is a <code>Makefile</code> that can help with our
development efforts.</p><p>We can build the Dockerfile using the provided Makefile. Since it has a
reference to the image we are building, let’s change it:</p><pre><code>sed -i.bak -e 's/actionloop-demo-python-v3.7/actionloop-demo-ruby-v2.6/' ruby2.6/Makefile
</code></pre><p>We should be now able to build the image and enter in it with
@@ -359,7 +359,7 @@ $ make debug
# results omitted for brevity ...
# (you should see a shell prompt of your image)
$ /bin/proxy -debug
-2019/04/08 07:47:36 OpenWhisk and Nuvolaris ActionLoop Proxy 2: starting
+2019/04/08 07:47:36 OpenWhisk and OpenServerless ActionLoop Proxy 2: starting
</code></pre><p>Now the runtime is started in debug mode, listening on port 8080, and
ready to accept Action deployments.</p><p>Open another terminal (while leaving the first one running the proxy)
and go <em>into the top-level directory of our project</em> to test the Action
@@ -374,7 +374,7 @@ $ python tools/invoke.py run '{"name":"Mike"}'
</code></pre><p>We should also see debug output from the first terminal running the
proxy (with the <code>debug</code> flag) which should have successfully processed
the <code>init</code> and <code>run</code> requests above.</p><p>The proxy’s debug output should appear something like:</p><pre><code>/proxy # /bin/proxy -debug
-2019/04/08 07:54:57 OpenWhisk and Nuvolaris ActionLoop Proxy 2: starting
+2019/04/08 07:54:57 OpenWhisk and OpenServerless ActionLoop Proxy 2: starting
2019/04/08 07:58:00 compiler: /proxy/bin/compile
2019/04/08 07:58:00 it is source code
2019/04/08 07:58:00 compiling: ./action/16/src/exec main: hello
@@ -434,7 +434,7 @@ action/2/bin/main__.rb
</code></pre><h2 id=testing>Testing</h2><p>If we have reached this point in the tutorial, the runtime is able to
run and execute a simple test action. Now we need to validate the
runtime against a set of mandatory tests both locally and within an
-OpenWhisk and Nuvolaris staging environment. Additionally, we should
+OpenWhisk and OpenServerless staging environment. Additionally, we should
author and automate additional tests for language specific features and
styles.</p><p>The <code>starter kit</code> includes two handy <code>makefiles</code> that we can leverage
for some additional tests. In the next sections, we will show how to
@@ -491,19 +491,19 @@ public cloud. So as the last step before moving forward, let’s push the
image to Docker Hub with <code>make push</code>.</p><h3 id=testing-on-openwhisk-and-openserverless>Testing on OpenWhisk and OpenServerless</h3><p>To run this test you need to configure access to OpenWhisk and OpenServerless
with <code>ops</code>. A simple way is to get access is to register a free account
in the IBM Cloud but this works also with our own deployment of
-OpenWhisk and Nuvolaris.</p><p>Edit the Makefile as we did previously:</p><pre><code>IMG=actionloop-demo-ruby-v2.6:latest
+OpenWhisk and OpenServerless.</p><p>Edit the Makefile as we did previously:</p><pre><code>IMG=actionloop-demo-ruby-v2.6:latest
ACT=hello-demo-ruby
PREFIX=docker.io/<docker username>
</code></pre><p>Also, change any reference to <code>hello.py</code> and <code>main.py</code> to <code>hello.rb</code> and
<code>main.rb</code>.</p><p>Once this is done, we can re-run the tests we executed locally on “the
real thing”.</p><p>Test single:</p><pre><code>$ make test-single
-nuv action update hello-demo-ruby hello.rb --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest --main hello
+ops action update hello-demo-ruby hello.rb --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest --main hello
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
@@ -511,25 +511,25 @@ nuv action invoke hello-demo-ruby -p name Mike -r
zip src.zip main.rb hello.rb
adding: main.rb (deflated 42%)
adding: hello.rb (deflated 42%)
-nuv action update hello-demo-ruby src.zip --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest
+ops action update hello-demo-ruby src.zip --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
</code></pre><p>Test binary ZIP:</p><pre><code>$ make test-bin-zip
docker run -i actionloop-demo-ruby-v2.6:latest -compile main <src.zip >bin.zip
-nuv action update hello-demo-ruby bin.zip --docker docker.io/actionloop/actionloop-demo-ruby-v2.6:latest
+ops action update hello-demo-ruby bin.zip --docker docker.io/actionloop/actionloop-demo-ruby-v2.6:latest
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
@@ -569,8 +569,8 @@ runtime.actionContainers.ActionLoopPythoRubyTests > runtime proxy should echo
BUILD SUCCESSFUL in 55s
</code></pre><p>Big congratulations are in order having reached this point successfully.
At this point, our runtime should be ready to run on any OpenWhisk and
-Nuvolaris platform and also can be submitted for consideration to be
-included in the Apache OpenWhisk and Nuvolaris project.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-aa85069ab6f58eef613cc4e73ddbe0c1>1.3 - Naming And Limits</h1><h1 id=system-details>System details</h1><p>The following sections provide more details about the OpenWhisk and
+OpenServerless platform and also can be submitted for consideration to be
+included in the Apache OpenWhisk and OpenServerless project.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-aa85069ab6f58eef613cc4e73ddbe0c1>1.3 - Naming And Limits</h1><h1 id=system-details>System details</h1><p>The following sections provide more details about the OpenWhisk and
OpenServerless system.</p><h2 id=entities>Entities</h2><h3 id=namespaces-and-packages>Namespaces and packages</h3><p>OpenWhisk and OpenServerless actions, triggers, and rules belong in a
namespace, and optionally a package.</p><p>Packages can contain actions and feeds. A package cannot contain another
package, so package nesting is not allowed. Also, entities do not have
@@ -584,7 +584,7 @@ with a <code>/</code>.</p><p>For convenience, the namespace can be left off if i
<em>default namespace</em>.</p><p>For example, consider a user whose default namespace is <code>/myOrg</code>.
Following are examples of the fully qualified names of a number of
entities and their aliases.</p><table><col style=width:20%><col style=width:20%><col style=width:20%><col style=width:20%><col style=width:20%><thead><tr class=header><th style=text-align:left>Fully qualified name</th><th style=text-align:left>Alias</th><th style=text-align:left>Namespace</th><th style=text-align:left>Package</th><th style=text-align:left>Name</th></tr></thead><tbody><tr class=odd><td style=text-align:left><p><code>/whisk.system/cloudant/read</code></p></td><td style=tex [...]
-Nuvolaris CLI, among other places.</p><h3 id=entity-names>Entity names</h3><p>The names of all entities, including actions, triggers, rules, packages,
+OpenServerless CLI, among other places.</p><h3 id=entity-names>Entity names</h3><p>The names of all entities, including actions, triggers, rules, packages,
and namespaces, are a sequence of characters that follow the following
format:</p><ul><li><p>The first character must be an alphanumeric character, or an
underscore.</p></li><li><p>The subsequent characters can be alphanumeric, spaces, or any of the
@@ -644,7 +644,7 @@ per namespace per minute</p></td><td style=text-align:left><p>per user</p></td><
may be fired in one minute windows.</p></li><li><p>A user cannot change this limit when creating the trigger.</p></li><li><p>A CLI or API call that exceeds this limit receives an error code
corresponding to HTTP status code <code>429: TOO MANY REQUESTS</code>.</p></li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-5b43e18f4cddb0aabe9809532e2cc2fe>1.4 - Rest API</h1><h1 id=using-rest-apis-with-openwhisk-and-nuvoopenserverlesslaris>Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris</h1><p>After your OpenWhisk and OpenServerlesss environment is enabled, you can use
it with your web apps or mobile apps with REST API calls.</p><p>For more details about the APIs for actions, activations, packages,
-rules, and triggers, see the <a href="http://petstore.swagger.io/?url=https://raw.githubusercontent.com/openwhisk/openwhisk/master/core/controller/src/main/resources/apiv1swagger.json">OpenWhisk and Nuvolaris API
+rules, and triggers, see the <a href="http://petstore.swagger.io/?url=https://raw.githubusercontent.com/openwhisk/openwhisk/master/core/controller/src/main/resources/apiv1swagger.json">OpenWhisk and OpenServerless API
documentation</a>.</p><p>All the capabilities in the system are available through a REST API.
There are collection and entity endpoints for actions, triggers, rules,
packages, activations, and namespaces.</p><p>These are the collection endpoints:</p><pre><code>https://$APIHOST/api/v1/namespaces
@@ -672,7 +672,7 @@ enable or disable rules.</p><p>All APIs are protected with HTTP Basic authentica
authentication. The Basic authentication credentials are in the <code>AUTH</code>
property in your <code>~/.nuvprops</code> file, delimited by a colon. You can also
retrieve these credentials using the CLI running
-<code>nuv property get --auth</code>.</p><p>The following is an example that uses the <a href=https://curl.haxx.se>cURL</a>
+<code>ops property get --auth</code>.</p><p>The following is an example that uses the <a href=https://curl.haxx.se>cURL</a>
command tool to get the list of all packages in the <code>whisk.system</code>
namespace:</p><pre><code>curl -u USERNAME:PASSWORD https://$APIHOST/api/v1/namespaces/whisk.system/packages
@@ -702,9 +702,9 @@ allowed (that is, Access-Control-Allow-Methods is
<code>Authorization, Origin, X-Requested-With, Content-Type, Accept, User-Agent</code>.</p><p><strong>Attention:</strong> Because OpenWhisk and OpenServerless currently supports only
one key per namespace, it is not recommended to use CORS beyond simple
experiments. Use <a href=/docs/reference/references/rest_api/#webactions.adoc>Web Actions</a> to expose your actions
-to the public and not use the OpenWhisk and Nuvolaris authorization key
+to the public and not use the OpenWhisk and OpenServerless authorization key
for client applications that require CORS.</p><h2 id=using-the-cli-verbose-mode>Using the CLI verbose mode</h2><p>The OpenWhisk and OpenServerless CLI is an interface to the OpenWhisk and
-Nuvolaris REST API. You can run the CLI in verbose mode with the flag
+OpenServerless REST API. You can run the CLI in verbose mode with the flag
<code>-v</code>, this will print truncated information about the HTTP request and
response. To print all information use the flag <code>-d</code> for debug.</p><p><strong>Note:</strong> HTTP request and response bodies will only be truncated if
they exceed 1000 bytes.</p><p>Let’s try getting the namespace value for the current user.</p><pre><code>ops namespace list -v
@@ -717,7 +717,7 @@ Req Headers
"Basic XXXYYYY"
],
"User-Agent": [
- "OpenWhisk and Nuvolaris-CLI/1.0 (2017-08-10T20:09:30+00:00)"
+ "OpenWhisk and OpenServerless-CLI/1.0 (2017-08-10T20:09:30+00:00)"
]
}
RESPONSE:Got response with code 200
@@ -737,7 +737,7 @@ the HTTP request, it performs a HTTP method <code>GET</code> on the URL
Authorization header <code>Basic XXXYYYY</code>. Notice that the authorization
value is your base64-encoded OpenWhisk and OpenServerless authorization
string. The response is of content type <code>application/json</code>.</p><h2 id=actions>Actions</h2><p><strong>Note:</strong> In the examples that follow, <code>$AUTH</code> and <code>$APIHOST</code> represent
-environment variables set respectively to your OpenWhisk and Nuvolaris
+environment variables set respectively to your OpenWhisk and OpenServerless
authorization key and API host.</p><p>To create or update an action send a HTTP request with method <code>PUT</code> on
the the actions collection. For example, to create a <code>nodejs:6</code> action
with the name <code>hello</code> using a single file content use the following:</p><pre><code>curl -u $AUTH -d '{"namespace":"_","name":"hello","exec":{"kind":"nodejs:6","code":"function main(params) { return {payload:\"Hello \"+params.name}}"}}' -X PUT -H "Content-Type: application/json" https://$APIHOST/api/v1/namespaces/_/actions/hello?overwrite=true
@@ -794,7 +794,7 @@ on the action</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/a
-X PUT -H "Content-Type: application/json" \
-d '{"namespace":"_","name":"hello","exec":{"kind":"nodejs:6","code":"function main(params) { return {payload:\"Hello \"+params.name}}"},"annotations":[{"key":"web-export","value":true},{"key":"raw-http","value":false},{"key":"final","value":true}]}'
</code></pre><p>You can now invoke this action as a public URL with no OpenWhisk and
-Nuvolaris authorization. Try invoking using the web action public URL
+OpenServerless authorization. Try invoking using the web action public URL
including an optional extension such as <code>.json</code> or <code>.http</code> for example
at the end of the URL.</p><pre><code>curl https://$APIHOST/api/v1/web/john@example.com_dev/default/hello.json?name=John
@@ -804,7 +804,7 @@ at the end of the URL.</p><pre><code>curl https://$APIHOST/api/v1/web/john@examp
</code></pre><p>Note that this example source code will not work with <code>.http</code>, see <a href=webactions.md>web
actions</a> documentation on how to modify.</p><h2 id=sequences>Sequences</h2><p>To create an action sequence, you need to create it by providing the
names of the actions that compose the sequence in the desired order, so
-the output from the first action is passed as input to the next action.</p><p>$ nuv action create sequenceAction –sequence
+the output from the first action is passed as input to the next action.</p><p>$ ops action create sequenceAction –sequence
/whisk-system/utils/split,/whisk-system/utils/sort</p><p>Create a sequence with the actions <code>/whisk-system/utils/split</code> and
<code>/whisk-system/utils/sort</code>.</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/actions/sequenceAction?overwrite=true \
-X PUT -H "Content-Type: application/json" \
@@ -957,8 +957,8 @@ object providing a new activation context and the input parameters for
the function. There may be many activations of the same function against
the same proxy (viz. container). Currently, the activations are
guaranteed not to overlap — that is, at any given time, there is at most
-one request to <code>/run</code> from the OpenWhisk and Nuvolaris platform.</p><p>The route must accept a JSON object and respond with a JSON object,
-otherwise the OpenWhisk and Nuvolaris platform will treat the activation
+one request to <code>/run</code> from the OpenWhisk and OpenServerless platform.</p><p>The route must accept a JSON object and respond with a JSON object,
+otherwise the OpenWhisk and OpenServerless platform will treat the activation
as a failure and proceed to destroy the container. The JSON object
provided by the platform follows the following schema:</p><pre><code>{
"value": JSON,
@@ -971,14 +971,14 @@ provided by the platform follows the following schema:</p><pre><code>{
"deadline": Number
}
</code></pre><ul><li><p><code>value</code> is a JSON object and contains all the parameters for the
-function activation.</p></li><li><p><code>namespace</code> is the OpenWhisk and Nuvolaris namespace for the action
+function activation.</p></li><li><p><code>namespace</code> is the OpenWhisk and OpenServerless namespace for the action
(e.g., <code>whisk-system</code>).</p></li><li><p><code>action_name</code> is the <a href=reference.md#fully-qualified-names>fully qualified
name</a> of the action.</p></li><li><p><code>activation_id</code> is a unique ID for this activation.</p></li><li><p><code>transaction_id</code> is a unique ID for the request of which this
activation is part of.</p></li><li><p><code>deadline</code> is the deadline for the function.</p></li><li><p><code>api_key</code> is the API key used to invoke the action.</p></li></ul><p>The <code>value</code> is the function parameters. The rest of the properties
become part of the activation context which is a set of environment
variables constructed by capitalizing each of the property names, and
prefixing the result with <code>__OW_</code>. Additionally, the context must define
-<code>__OW_API_HOST</code> whose value is the OpenWhisk and Nuvolaris API host.
+<code>__OW_API_HOST</code> whose value is the OpenWhisk and OpenServerless API host.
This value is currently provided as an environment variable defined at
container startup time and hence already available in the context.</p><p><strong>Successful activation:</strong> The route must respond with <code>200 OK</code> if the
activation is successful and the function has produced a JSON object as
@@ -987,7 +987,7 @@ activation</a>.</p><p><strong>Failed activation:</strong> Any response other tha
activation error. The response from the handler must be a JSON object
with a single field called <code>error</code> describing the failure. The value of
the error field may be any valid JSON value. Should the proxy fail to
-respond with a JSON object, the OpenWhisk and Nuvolaris platform will
+respond with a JSON object, the OpenWhisk and OpenServerless platform will
treat the failure as an uncaught exception. These two failures modes are
distinguished by the value of the <code>response.status</code> in the activation
record which is <code>application error</code> if the proxy returned an <code>error</code>
@@ -1029,12 +1029,12 @@ action.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-
</span></span><span style=display:flex><span> <span style=color:#204a87;font-weight:700>return</span> <span style=color:#000;font-weight:700>{</span>
</span></span><span style=display:flex><span> <span style=color:#4e9a06>'body'</span><span style=color:#000;font-weight:700>:</span> <span style=color:#4e9a06>'action invoked'</span>
</span></span><span style=display:flex><span> <span style=color:#000;font-weight:700>}</span>
-</span></span></code></pre></div><p>abd save it to a file called <code>scheduled-action.py</code></p><p>To deploy the action and instruct OpenServerless to execute it every 30 minutes, issue the following command:</p><p><code>ops action create scheduled-action scheduled-action.py -a cron "*/30 * * * *"</code></p><p>So you can create the action in the usual way and at the end add -a cron yourCronExpression.</p><h1 id=how-to-deploy-a-one-shot-execution-action>How to Deploy a One-Shot Execu [...]
+</span></span></code></pre></div><p>abd save it to a file called <code>scheduled-action.py</code></p><p>To deploy the action and instruct OpenServerless to execute it every 30 minutes, issue the following command:</p><p><code>ops action create scheduled-action scheduled-action.py -a cron "*/30 * * * *"</code></p><p>So you can create the action in the usual way and at the end add -a cron yourCronExpression.</p><h1 id=how-to-deploy-a-one-shot-execution-action>How to Deploy a One-Shot Execu [...]
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>[</span>
</span></span><span style=display:flex><span> <span style=color:#4e9a06>"2024-03-08T07:28:02.050739962Z stdout: Hello from a scheduled action"</span>
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>]</span>
</span></span></code></pre></div><h1 id=remarks>Remarks</h1><p>The Scheduler executes the action according to the following rules:</p><p>Actions are called in a non-blocking fashion. To verify execution and logs, use the command <code>ops activation list</code>.
-Actions are invoked without any parameters. It is advised to deploy actions with self-contained parameters.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-9a9f38e443de2df9046eecaddcd64dcb>2 - Entities</h1><p>You can find more informations about Nuvolaris and OpenWhisk entities
+Actions are invoked without any parameters. It is advised to deploy actions with self-contained parameters.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-9a9f38e443de2df9046eecaddcd64dcb>2 - Entities</h1><p>You can find more informations about OpenServerless and OpenWhisk entities
here:</p><ul><li><p><a href=/docs/reference/entities/#actions.adoc>Actions</a></p></li><li><p><a href=/docs/reference/entities/#parameters.adoc>Parameters</a></p></li><li><p><a href=/docs/reference/entities/#annotations.adoc>Annotations</a></p></li><li><p><a href=/docs/reference/entities/#scheduler.adoc>Scheduler</a></p></li><li><p><a href=/docs/reference/entities/#webactions.adoc>Web Actions</a></p></li><li><p><a href=/docs/reference/entities/#packages.adoc>Packages</a></p></li><li><p>< [...]
OpenServerless platform. For example, an action can be used to detect
the faces in an image, respond to a database change, respond to an API
@@ -1090,10 +1090,10 @@ requested with the annotation explicitly
the same as the namespace for the action).</p></li><li><p><code>__OW_ACTION_NAME</code> the fully qualified name of the running action.</p></li><li><p><code>__OW_ACTION_VERSION</code> the internal version number of the running
action.</p></li><li><p><code>__OW_ACTIVATION_ID</code> the activation id for this running action
instance.</p></li><li><p><code>__OW_DEADLINE</code> the approximate time when this action will have
-consumed its entire duration quota (measured in epoch milliseconds).</p></li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-0fbd1ebffcee5d3c07d1d8080f65183d>2.2 - Web Actions</h1><h1 id=web-actions>Web Actions</h1><p>Web actions are OpenWhisk and Nuvolaris actions annotated to quickly
+consumed its entire duration quota (measured in epoch milliseconds).</p></li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-0fbd1ebffcee5d3c07d1d8080f65183d>2.2 - Web Actions</h1><h1 id=web-actions>Web Actions</h1><p>Web actions are OpenWhisk and OpenServerless actions annotated to quickly
enable you to build web based applications. This allows you to program
backend logic which your web application can access anonymously without
-requiring an OpenWhisk and Nuvolaris authentication key. It is up to the
+requiring an OpenWhisk and OpenServerless authentication key. It is up to the
action developer to implement their own desired authentication and
authorization (i.e. OAuth flow).</p><p>Web action activations will be associated with the user that created the
action. This actions defers the cost of an action activation from the
@@ -1107,13 +1107,13 @@ function main({name}) {
}
</code></pre><p>You may create a <em>web action</em> <code>hello</code> in the package <code>demo</code> for the
namespace <code>guest</code> using the CLI’s <code>--web</code> flag with a value of <code>true</code> or
-<code>yes</code>:</p><pre><code>$ nuv package create demo
+<code>yes</code>:</p><pre><code>$ ops package create demo
ok: created package demo
-$ nuv action create demo/hello hello.js --web true
+$ ops action create demo/hello hello.js --web true
ok: created action demo/hello
-$ nuv action get demo/hello --url
+$ ops action get demo/hello --url
ok: got action hello
https://${APIHOST}/api/v1/web/guest/demo/hello
</code></pre><p>Using the <code>--web</code> flag with a value of <code>true</code> or <code>yes</code> allows an action
@@ -1172,13 +1172,13 @@ the body may be any allowed JSON value. The default content-type may be
omitted from the headers.</p><p>It is important to be aware of the <a href=/docs/reference/entities/webactions/#reference.adoc>response size
limit</a> for actions since a response that exceeds the
predefined system limits will fail. Large objects should not be sent
-inline through OpenWhisk and Nuvolaris, but instead deferred to an
-object store, for example.</p><h2 id=handling-http-requests-with-actions>Handling HTTP requests with actions</h2><p>An OpenWhisk and Nuvolaris action that is not a web action requires both
+inline through OpenWhisk and OpenServerless, but instead deferred to an
+object store, for example.</p><h2 id=handling-http-requests-with-actions>Handling HTTP requests with actions</h2><p>An OpenWhisk and OpenServerless action that is not a web action requires both
authentication and must respond with a JSON object. In contrast, web
actions may be invoked without authentication, and may be used to
implement HTTP handlers that respond with <em>headers</em>, <em>statusCode</em>, and
<em>body</em> content of different types. The web action must still return a
-JSON object, but the OpenWhisk and Nuvolaris system (namely the
+JSON object, but the OpenWhisk and OpenServerless system (namely the
<code>controller</code>) will treat a web action differently if its result includes
one or more of the following as top level JSON properties:</p><ol><li><p><code>headers</code>: a JSON object where the keys are header-names and the
values are string, number, or boolean values for those headers
@@ -1199,7 +1199,7 @@ and decode the string using a base64 decoder as needed. Should the body
fail to decoded correctly, an error is returned to the caller.</p><h2 id=http-context>HTTP Context</h2><p>All web actions, when invoked, receives additional HTTP request details
as parameters to the action input argument. They are:</p><ol><li><p><code>__ow_method</code> (type: string): the HTTP method of the request.</p></li><li><p><code>__ow_headers</code> (type: map string to string): the request headers.</p></li><li><p><code>__ow_path</code> (type: string): the unmatched path of the request
(matching stops after consuming the action extension).</p></li><li><p><code>__ow_user</code> (type: string): the namespace identifying the OpenWhisk
-and Nuvolaris authenticated subject.</p></li><li><p><code>__ow_body</code> (type: string): the request body entity, as a base64
+and OpenServerless authenticated subject.</p></li><li><p><code>__ow_body</code> (type: string): the request body entity, as a base64
encoded string when content is binary or JSON object/array, or plain
string otherwise.</p></li><li><p><code>__ow_query</code> (type: string): the query parameters from the request
as an unparsed string.</p></li></ol><p>A request may not override any of the named <code>__ow_</code> parameters above;
@@ -1326,7 +1326,7 @@ shown above.</p><pre><code>$ curl https://${APIHOST}/api/v1/web/guest/demo/hello
the absence of an extension assumes <code>.http</code> as the default. The fully
qualified name of the action must include its package name, which is
<code>default</code> if the action is not in a named package.</p><h2 id=protected-parameters>Protected parameters</h2><p>Action parameters are protected and treated as immutable. Parameters are
-automatically finalized when enabling web actions.</p><pre><code>$ nuv action create /guest/demo/hello hello.js \
+automatically finalized when enabling web actions.</p><pre><code>$ ops action create /guest/demo/hello hello.js \
--parameter name Jane \
--web true
</code></pre><p>The result of these changes is that the <code>name</code> is bound to <code>Jane</code> and
@@ -1338,7 +1338,7 @@ annotation</a> to
secure the web action. When the <code>require-whisk-auth</code> annotation is set
to <code>true</code>, the action will authenticate the invocation request’s Basic
Authorization credentials to confirm they represent a valid OpenWhisk
-and Nuvolaris identity. When set to a number or a case-sensitive string,
+and OpenServerless identity. When set to a number or a case-sensitive string,
the action’s invocation request must include a <code>X-Require-Whisk-Auth</code>
header having this same value. Secured web actions will return a
<code>Not Authorized</code> when credential validation fails.</p><p>Alternatively, use the <code>--web-secure</code> flag to automatically set the
@@ -1346,15 +1346,15 @@ header having this same value. Secured web actions will return a
generated as the <code>require-whisk-auth</code> annotation value. When set to
<code>false</code> the <code>require-whisk-auth</code> annotation is removed. When set to any
other value, that value is used as the <code>require-whisk-auth</code> annotation
-value.</p><pre><code>nuv action update /guest/demo/hello hello.js --web true --web-secure my-secret
-</code></pre><p>or</p><pre><code>nuv action update /guest/demo/hello hello.js --web true -a require-whisk-auth my-secret
+value.</p><pre><code>ops action update /guest/demo/hello hello.js --web true --web-secure my-secret
+</code></pre><p>or</p><pre><code>ops action update /guest/demo/hello hello.js --web true -a require-whisk-auth my-secret
curl https://${APIHOST}/api/v1/web/guest/demo/hello.json?name=Jane -X GET -H "X-Require-Whisk-Auth: my-secret"
</code></pre><p>It’s important to note that the owner of the web action owns all of the
web action’s activations records and will incur the cost of running the
action in the system regardless of how the action was invoked.</p><h2 id=disabling-web-actions>Disabling web actions</h2><p>To disable a web action from being invoked via web API
(<code>https://APIHOST/api/v1/web/</code>), pass a value of <code>false</code> or <code>no</code> to the
-<code>--web</code> flag while updating an action with the CLI.</p><pre><code>nuv action update /guest/demo/hello hello.js --web false
+<code>--web</code> flag while updating an action with the CLI.</p><pre><code>ops action update /guest/demo/hello hello.js --web false
</code></pre><h2 id=raw-http-handling>Raw HTTP handling</h2><p>A web action may elect to interpret and process an incoming HTTP body
directly, without the promotion of a JSON object to first class
properties available to the action input (e.g., <code>args.name</code> vs parsing
@@ -1379,9 +1379,9 @@ parameters and as JSON value in the HTTP request body:</p><pre><code>$ curl http
}
}
</code></pre><h3 id=enabling-raw-http-handling>Enabling raw HTTP handling</h3><p>Raw HTTP web actions are enabled via the <code>--web</code> flag using a value of
-<code>raw</code>.</p><pre><code>nuv action create /guest/demo/hello hello.js --web raw
+<code>raw</code>.</p><pre><code>ops action create /guest/demo/hello hello.js --web raw
</code></pre><h3 id=disabling-raw-http-handling>Disabling raw HTTP handling</h3><p>Disabling raw HTTP can be accomplished by passing a value of <code>false</code> or
-<code>no</code> to the <code>--web</code> flag.</p><pre><code>nuv update create /guest/demo/hello hello.js --web false
+<code>no</code> to the <code>--web</code> flag.</p><pre><code>ops update create /guest/demo/hello hello.js --web false
</code></pre><h3 id=decoding-binary-body-content-from-base64>Decoding binary body content from Base64</h3><p>When using raw HTTP handling, the <code>__ow_body</code> content will be encoded in
Base64 when the request content-type is binary. Below are functions
demonstrating how to decode the body content in Node, Python, and PHP.
@@ -1404,7 +1404,7 @@ function main(array $args) : array
return ["body" => $decoded];
}
</code></pre><p>As an example, save the Node function as <code>decode.js</code> and execute the
-following commands:</p><pre><code>$ nuv action create decode decode.js --web raw
+following commands:</p><pre><code>$ ops action create decode decode.js --web raw
ok: created action decode
$ curl -k -H "content-type: application" -X POST -d "Decoded body" https://${APIHOST}/api/v1/web/guest/default/decodeNode.json
{
@@ -1437,7 +1437,7 @@ OPTIONS requests.</p><pre><code>function main(params) {
}
}
</code></pre><p>Save the above function to <code>custom-options.js</code> and execute the following
-commands:</p><pre><code>$ nuv action create custom-option custom-options.js --web true -a web-custom-options true
+commands:</p><pre><code>$ ops action create custom-option custom-options.js --web true -a web-custom-options true
$ curl https://${APIHOST}/api/v1/web/guest/default/custom-options.http -kvX OPTIONS
< HTTP/1.1 200 OK
< Server: nginx/1.11.13
@@ -1455,7 +1455,7 @@ web action through your package bindings, then you should clone-and-own
the package instead.</p><p>Action parameters are inherited from its package, and the binding if
there is one. You can make package parameters
<a href=/docs/reference/entities/webactions/#annotations.adoc#protected-parameters>immutable</a> by defining their
-values through a package binding.</p><h2 id=error-handling>Error Handling</h2><p>When an OpenWhisk and Nuvolaris action fails, there are two different
+values through a package binding.</p><h2 id=error-handling>Error Handling</h2><p>When an OpenWhisk and OpenServerless action fails, there are two different
failure modes. The first is known as an <em>application error</em> and is
analogous to a caught exception: the action returns a JSON object
containing a top level <code>error</code> property. The second is a <em>developer
@@ -1491,11 +1491,11 @@ with the following content:</li></ol><pre><code>function main(params) {
}
</code></pre><p>The input parameters are passed as a JSON object parameter to the <code>main</code>
function. Notice how the <code>name</code> and <code>place</code> parameters are retrieved
-from the <code>params</code> object in this example.</p><ol><li>Update the action so it is ready to use:</li></ol><pre><code>nuv action update hello hello.js
+from the <code>params</code> object in this example.</p><ol><li>Update the action so it is ready to use:</li></ol><pre><code>ops action update hello hello.js
</code></pre><ol><li>Parameters can be provided explicitly on the command-line, or by
supplying a file containing the desired parameters</li></ol><p>To pass parameters directly through the command-line, supply a key/value
pair to the <code>--param</code> flag:
-<code>nuv action invoke --result hello --param name Dorothy --param place Kansas</code></p><p>This produces the result:</p><pre><code>{
+<code>ops action invoke --result hello --param name Dorothy --param place Kansas</code></p><p>This produces the result:</p><pre><code>{
"payload": "Hello, Dorothy from Kansas"
}
</code></pre><p>Notice the use of the <code>--result</code> option: it implies a blocking
@@ -1508,7 +1508,7 @@ structured object. For example, if we update our hello action to:</p><pre><code>
}
</code></pre><p>Now the action expects a single <code>person</code> parameter to have fields <code>name</code>
and <code>place</code>. If we invoke the action with a single <code>person</code> parameter
-that is valid JSON:</p><pre><code>nuv action invoke --result hello -p person '{"name": "Dorothy", "place": "Kansas"}'
+that is valid JSON:</p><pre><code>ops action invoke --result hello -p person '{"name": "Dorothy", "place": "Kansas"}'
</code></pre><p>The result is the same because the CLI automatically parses the <code>person</code>
parameter value into the structured object that the action now expects:
<code>json { "payload": "Hello, Dorothy from Kansas" }</code></p><h1 id=setting-default-parameters-on-an-action>Setting default parameters on an action</h1><p>Actions can be invoked with multiple named parameters. Recall that the
@@ -1519,8 +1519,8 @@ parameter so that the action defaults to the place “Kansas”:</p><ol><li>Upda
values, or by passing a file that contains the parameters to
<code>--param-file</code> (for examples of using files, see the section on
<a href=/docs/reference/entities/parameters/##working-with-parameter-files>working with parameter files</a>).</li></ol><p>To specify default parameters explicitly on the command-line, provide a
-key/value pair to the <code>param</code> flag:</p><pre><code>nuv action update hello --param place Kansas
-</code></pre><ol><li>Invoke the action, passing only the <code>name</code> parameter this time.</li></ol><pre><code>nuv action invoke --result hello --param name Dorothy
+key/value pair to the <code>param</code> flag:</p><pre><code>ops action update hello --param place Kansas
+</code></pre><ol><li>Invoke the action, passing only the <code>name</code> parameter this time.</li></ol><pre><code>ops action invoke --result hello --param name Dorothy
{
"payload": "Hello, Dorothy from Kansas"
@@ -1528,7 +1528,7 @@ key/value pair to the <code>param</code> flag:</p><pre><code>nuv action update h
</code></pre><p>Notice that you did not need to specify the <code>place</code> parameter when you
invoked the action. Bound parameters can still be overwritten by
specifying the parameter value at invocation time.</p><ol><li>Invoke the action, passing both <code>name</code> and <code>place</code> values, and
-observe the output:</li></ol><pre><code>nuv action invoke --result hello --param name Dorothy --param place "Washington, DC"
+observe the output:</li></ol><pre><code>ops action invoke --result hello --param name Dorothy --param place "Washington, DC"
{
"payload": "Hello, Dorothy from Washington, DC"
@@ -1537,13 +1537,13 @@ observe the output:</li></ol><pre><code>nuv action invoke --result hello --param
is overridden by a parameter that was supplied when invoking the action.</p><h1 id=setting-default-parameters-on-a-package>Setting default parameters on a package</h1><p>Parameters can be set at the package level, and these will serve as
default parameters for actions unless:</p><ul><li><p>The action itself has a default parameter.</p></li><li><p>The action has a parameter supplied at invoke time, which will
always be the “winner” where more than one parameter is available.</p></li></ul><p>The following example sets a default parameter of <code>name</code> on the <code>MyApp</code>
-package and shows an action making use of it.</p><ol><li>Create a package with a parameter set:</li></ol><pre><code>nuv package update MyApp --param name World
+package and shows an action making use of it.</p><ol><li>Create a package with a parameter set:</li></ol><pre><code>ops package update MyApp --param name World
</code></pre><ol><li>Create an action in this package:</li></ol><pre><code> function main(params) {
return {payload: "Hello, " + params.name};
}
-nuv action update MyApp/hello hello.js
-</code></pre><ol><li>Invoke the action, and observe the default package parameter in use:</li></ol><pre><code>nuv action invoke --result MyApp/hello
+ops action update MyApp/hello hello.js
+</code></pre><ol><li>Invoke the action, and observe the default package parameter in use:</li></ol><pre><code>ops action invoke --result MyApp/hello
{
"payload": "Hello, World"
@@ -1555,39 +1555,39 @@ creating/updating them, and when invoking actions.</p><ol><li>As an example, con
earlier. Using <code>hello.js</code> with this content:</li></ol><pre><code>function main(params) {
return {payload: 'Hello, ' + params.name + ' from ' + params.place};
}
-</code></pre><ol><li>Update the action with the updated contents of <code>hello.js</code>:</li></ol><pre><code>nuv action update hello hello.js
+</code></pre><ol><li>Update the action with the updated contents of <code>hello.js</code>:</li></ol><pre><code>ops action update hello hello.js
</code></pre><ol><li>Create a parameter file called <code>parameters.json</code> containing
JSON-formatted parameters:</li></ol><pre><code>{
"name": "Dorothy",
"place": "Kansas"
}
</code></pre><ol><li>Use the <code>parameters.json</code> filename when invoking the action, and
-observe the output</li></ol><pre><code>nuv action invoke --result hello --param-file parameters.json
+observe the output</li></ol><pre><code>ops action invoke --result hello --param-file parameters.json
{
"payload": "Hello, Dorothy from Kansas"
}
-</code></pre></div><div class=td-content style=page-break-before:always><h1 id=pg-1a65c20d0a8a7e9ac6e3d7ebb32079cf>2.4 - Packages</h1><h1 id=using-and-creating-packages>Using and creating packages</h1><p>In OpenWhisk and Nuvolaris, you can use packages to bundle together a
+</code></pre></div><div class=td-content style=page-break-before:always><h1 id=pg-1a65c20d0a8a7e9ac6e3d7ebb32079cf>2.4 - Packages</h1><h1 id=using-and-creating-packages>Using and creating packages</h1><p>In OpenWhisk and OpenServerless, you can use packages to bundle together a
set of related actions, and share them with others.</p><p>A package can include <em>actions</em> and <em>feeds</em>. - An action is a piece of
-code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant
+code that runs on OpenWhisk. For example, the Cloudant
package includes actions to read and write records to a Cloudant
database. - A feed is used to configure an external event source to fire
trigger events. For example, the Alarm package includes a feed that can
-fire a trigger at a specified frequency.</p><p>Every OpenWhisk and Nuvolaris entity, including packages, belongs in a
+fire a trigger at a specified frequency.</p><p>Every OpenWhisk and OpenServerless entity, including packages, belongs in a
<em>namespace</em>, and the fully qualified name of an entity is
<code>/namespaceName[/packageName]/entityName</code>. Refer to the <a href=/docs/reference/entities/packages/#reference.adoc#openwhisk-entities>naming
guidelines</a> for more information.</p><p>The following sections describe how to browse packages and use the
triggers and feeds in them. In addition, if you are interested in
contributing your own packages to the catalog, read the sections on
-creating and sharing packages.</p><h2 id=browsing-packages>Browsing packages</h2><p>Several packages are registered with OpenWhisk and Nuvolaris. You can
+creating and sharing packages.</p><h2 id=browsing-packages>Browsing packages</h2><p>Several packages are registered with OpenWhisk and OpenServerless. You can
get a list of packages in a namespace, list the entities in a package,
-and get a description of the individual entities in a package.</p><ol><li>Get a list of packages in the <code>/nuvolaris</code> namespace.</li></ol><pre><code>$ nuv package list /nuvolaris
+and get a description of the individual entities in a package.</p><ol><li>Get a list of packages in the <code>/nuvolaris</code> namespace.</li></ol><pre><code>$ ops package list /nuvolaris
packages
/nuvolaris/openai private
/nuvolaris/mastrogpt private
/nuvolaris/examples private
-</code></pre><ol><li>Get a list of entities in the <code>/nuvolaris/openai</code> package.</li></ol><pre><code>$ nuv package get --summary /nuvolaris/openai
+</code></pre><ol><li>Get a list of entities in the <code>/nuvolaris/openai</code> package.</li></ol><pre><code>$ ops package get --summary /nuvolaris/openai
package /nuvolaris/openai
(parameters: none defined)
action /nuvolaris/openai/models
@@ -1602,7 +1602,7 @@ means that they are immutable, and cannot be changed by the user. Any
entity listed under a package inherits specific bound parameters from
the package. To view the list of known parameters of an entity belonging
to a package, you will need to run a <code>get --summary</code> of the individual
-entity.</p><ol><li>Get a description of the <code>/nuvolaris/openai/chat</code> action.</li></ol><pre><code>$ nuv action get --summary /nuvolaris/openai/chat
+entity.</p><ol><li>Get a description of the <code>/nuvolaris/openai/chat</code> action.</li></ol><pre><code>$ ops action get --summary /nuvolaris/openai/chat
action /nuvolaris/openai/chat: Returns a result based on parameters OPENAI_API_HOST and OPENAI_API_KEY
(parameters: **OPENAI_API_HOST, **OPENAI_API_KEY)
</code></pre><p><em>NOTE</em>: Notice that the parameters listed for the action <code>read</code> were
@@ -1612,33 +1612,33 @@ listed under packages, run an individual get summary for the particular
entity.</p><h2 id=creating-a-package>Creating a package</h2><p>A package is used to organize a set of related actions and feeds. It
also allows for parameters to be shared across all entities in the
package.</p><p>To create a custom package with a simple action in it, try the following
-example:</p><ol><li>Create a package called <code>custom</code>.</li></ol><pre><code>$ nuv package create custom
+example:</p><ol><li>Create a package called <code>custom</code>.</li></ol><pre><code>$ ops package create custom
ok: created package custom
-</code></pre><ol><li>Get a summary of the package.</li></ol><pre><code>$ nuv package get --summary custom
+</code></pre><ol><li>Get a summary of the package.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom
(parameters: none defined)
</code></pre><p>Notice that the package is empty.</p><ol><li>Create a file called <code>identity.js</code> that contains the following
action code. This action returns all input parameters.</li></ol><pre><code>function main(args) { return args; }
-</code></pre><ol><li>Create an <code>identity</code> action in the <code>custom</code> package.</li></ol><pre><code>$ nuv action create custom/identity identity.js
+</code></pre><ol><li>Create an <code>identity</code> action in the <code>custom</code> package.</li></ol><pre><code>$ ops action create custom/identity identity.js
ok: created action custom/identity
</code></pre><p>Creating an action in a package requires that you prefix the action name
with a package name. Package nesting is not allowed. A package can
-contain only actions and can’t contain another package.</p><ol><li>Get a summary of the package again.</li></ol><pre><code>$ nuv package get --summary custom
+contain only actions and can’t contain another package.</p><ol><li>Get a summary of the package again.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom
(parameters: none defined)
action /myNamespace/custom/identity
(parameters: none defined)
-</code></pre><p>You can see the <code>custom/identity</code> action in your namespace now.</p><ol><li>Invoke the action in the package.</li></ol><pre><code>$ nuv action invoke --result custom/identity
+</code></pre><p>You can see the <code>custom/identity</code> action in your namespace now.</p><ol><li>Invoke the action in the package.</li></ol><pre><code>$ ops action invoke --result custom/identity
{}
</code></pre><p>You can set default parameters for all the entities in a package. You do
this by setting package-level parameters that are inherited by all
actions in the package. To see how this works, try the following
example:</p><ol><li>Update the <code>custom</code> package with two parameters: <code>city</code> and
-<code>country</code>.</li></ol><pre><code>$ nuv package update custom --param city Austin --param country USA
+<code>country</code>.</li></ol><pre><code>$ ops package update custom --param city Austin --param country USA
ok: updated package custom
</code></pre><ol><li>Display the parameters in the package and action, and see how the
<code>identity</code> action in the package inherits parameters from the
-package.</li></ol><pre><code>$ nuv package get custom
+package.</li></ol><pre><code>$ ops package get custom
ok: got package custom
...
"parameters": [
@@ -1653,7 +1653,7 @@ ok: got package custom
]
...
-$ nuv action get custom/identity
+$ ops action get custom/identity
ok: got action custom/identity
...
"parameters": [
@@ -1668,27 +1668,27 @@ ok: got action custom/identity
]
...
</code></pre><ol><li>Invoke the identity action without any parameters to verify that the
-action indeed inherits the parameters.</li></ol><pre><code>$ nuv action invoke --result custom/identity
+action indeed inherits the parameters.</li></ol><pre><code>$ ops action invoke --result custom/identity
{
"city": "Austin",
"country": "USA"
}
</code></pre><ol><li>Invoke the identity action with some parameters. Invocation
parameters are merged with the package parameters; the invocation
-parameters override the package parameters.</li></ol><pre><code>$ nuv action invoke --result custom/identity --param city Dallas --param state Texas
+parameters override the package parameters.</li></ol><pre><code>$ ops action invoke --result custom/identity --param city Dallas --param state Texas
{
"city": "Dallas",
"country": "USA",
"state": "Texas"
}
</code></pre><h2 id=sharing-a-package>Sharing a package</h2><p>After the actions and feeds that comprise a package are debugged and
-tested, the package can be shared with all OpenWhisk and Nuvolaris
+tested, the package can be shared with all OpenWhisk and OpenServerless
users. Sharing the package makes it possible for the users to bind the
package, invoke actions in the package, and author OpenWhisk and
-Nuvolaris rules and sequence actions.</p><ol><li>Share the package with all users:</li></ol><pre><code>$ nuv package update custom --shared yes
+OpenServerless rules and sequence actions.</p><ol><li>Share the package with all users:</li></ol><pre><code>$ ops package update custom --shared yes
ok: updated package custom
</code></pre><ol><li>Display the <code>publish</code> property of the package to verify that it is
-now true.</li></ol><pre><code>$ nuv package get custom
+now true.</li></ol><pre><code>$ ops package get custom
ok: got package custom
...
"publish": true,
@@ -1698,30 +1698,30 @@ package or directly invoking an action in it. Other users must know the
fully qualified names of the package to bind it or invoke actions in it.
Actions and feeds within a shared package are <em>public</em>. If the package
is private, then all of its contents are also private.</p><ol><li>Get a description of the package to show the fully qualified names
-of the package and action.</li></ol><pre><code>$ nuv package get --summary custom
+of the package and action.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom: Returns a result based on parameters city and country
(parameters: *city, *country)
action /myNamespace/custom/identity
(parameters: none defined)
</code></pre><p>In the previous example, you’re working with the <code>myNamespace</code>
-namespace, and this namespace appears in the fully qualified name.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-edfa631df9f2b93b7371eb7b774a35b8>2.5 - Feeds</h1><h1 id=implementing-feeds>Implementing feeds</h1><p>OpenWhisk and Nuvolaris support an open API, where any user can expose
+namespace, and this namespace appears in the fully qualified name.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-edfa631df9f2b93b7371eb7b774a35b8>2.5 - Feeds</h1><h1 id=implementing-feeds>Implementing feeds</h1><p>OpenWhisk and OpenServerless support an open API, where any user can expose
an event producer service as a <strong>feed</strong> in a <strong>package</strong>. This section
describes architectural and implementation options for providing your
-own feed.</p><p>This material is intended for advanced OpenWhisk and Nuvolaris users who
-intend to publish their own feeds. Most OpenWhisk and Nuvolaris users
+own feed.</p><p>This material is intended for advanced OpenWhisk and OpenServerless users who
+intend to publish their own feeds. Most OpenWhisk and OpenServerless users
can safely skip this section.</p><h1 id=feed-architecture>Feed Architecture</h1><p>There are at least 3 architectural patterns for creating a feed:
<strong>Hooks</strong>, <strong>Polling</strong> and <strong>Connections</strong>.</p><h2 id=hooks>Hooks</h2><p>In the <em>Hooks</em> pattern, we set up a feed using a
<a href=https://en.wikipedia.org/wiki/Webhook>webhook</a> facility exposed by
another service. In this strategy, we configure a webhook on an external
service to POST directly to a URL to fire a trigger. This is by far the
-easiest and most attractive option for implementing low-frequency feeds.</p><h2 id=polling>Polling</h2><p>In the <code>Polling</code> pattern, we arrange for an OpenWhisk and Nuvolaris
+easiest and most attractive option for implementing low-frequency feeds.</p><h2 id=polling>Polling</h2><p>In the <code>Polling</code> pattern, we arrange for an OpenWhisk and OpenServerless
<em>action</em> to poll an endpoint periodically to fetch new data. This
pattern is relatively easy to build, but the frequency of events will of
course be limited by the polling interval.</p><h2 id=connections>Connections</h2><p>In the <code>Connections</code> pattern, we stand up a separate service somewhere
that maintains a persistent connection to a feed source. The connection
based implementation might interact with a service endpoint via long
polling, or to set up a push notification.</p><h1 id=difference-between-feed-and-trigger>Difference between Feed and Trigger</h1><p>Feeds and triggers are closely related, but technically distinct
-concepts.</p><ul><li><p>OpenWhisk and Nuvolaris process <strong>events</strong> which flow into the
+concepts.</p><ul><li><p>OpenWhisk and OpenServerless process <strong>events</strong> which flow into the
system.</p></li><li><p>A <strong>trigger</strong> is technically a name for a class of events. Each
event belongs to exactly one trigger; by analogy, a trigger
resembles a <em>topic</em> in topic-based pub-sub systems. A <strong>rule</strong> <em>T →
@@ -1731,67 +1731,67 @@ A</em> means “whenever an event from trigger <em>T</em> arrives, invoke ac
creating, deleting, pausing, and resuming the stream of events which
comprise a feed. The feed action typically interacts with external
services which produce the events, via a REST API that manages
-notifications.</p></li></ul><h1 id=implementing-feed-actions>Implementing Feed Actions</h1><p>The <em>feed action</em> is a normal OpenWhisk and Nuvolaris <em>action</em>, but it
+notifications.</p></li></ul><h1 id=implementing-feed-actions>Implementing Feed Actions</h1><p>The <em>feed action</em> is a normal OpenWhisk and OpenServerless <em>action</em>, but it
should accept the following parameters: * <strong>lifecycleEvent</strong>: one of
‘CREATE’, ‘READ’, ‘UPDATE’, ‘DELETE’, ‘PAUSE’, or ‘UNPAUSE’. *
<strong>triggerName</strong>: the fully-qualified name of the trigger which contains
events produced from this feed. * <strong>authKey</strong>: the Basic auth
-credentials of the OpenWhisk and Nuvolaris user who owns the trigger
+credentials of the OpenWhisk and OpenServerless user who owns the trigger
just mentioned.</p><p>The feed action can also accept any other parameters it needs to manage
the feed. For example the cloudant changes feed action expects to
receive parameters including <em>`dbname’</em>, <em>`username’</em>, etc.</p><p>When the user creates a trigger from the CLI with the <strong>–feed</strong>
parameter, the system automatically invokes the feed action with the
appropriate parameters.</p><p>For example, assume the user has created a <code>mycloudant</code> binding for the
<code>cloudant</code> package with their username and password as bound parameters.
-When the user issues the following command from the CLI:</p><p><code>nuv trigger create T --feed mycloudant/changes -p dbName myTable</code></p><p>then under the covers the system will do something equivalent to:</p><p><code>nuv action invoke mycloudant/changes -p lifecycleEvent CREATE -p triggerName T -p authKey <userAuthKey> -p password <password value from mycloudant binding> -p username <username value from mycloudant binding> -p dbName mytype</code></p><p>The feed action na [...]
+When the user issues the following command from the CLI:</p><p><code>ops trigger create T --feed mycloudant/changes -p dbName myTable</code></p><p>then under the covers the system will do something equivalent to:</p><p><code>ops action invoke mycloudant/changes -p lifecycleEvent CREATE -p triggerName T -p authKey <userAuthKey> -p password <password value from mycloudant binding> -p username <username value from mycloudant binding> -p dbName mytype</code></p><p>The feed action na [...]
to take whatever action is necessary to set up a stream of events from
Cloudant, with the appropriate configuration, directed to the trigger
<em>T</em>.</p><p>For the Cloudant <em>changes</em> feed, the action happens to talk directly to
a <em>cloudant trigger</em> service we’ve implemented with a connection-based
-architecture. We’ll discuss the other architectures below.</p><p>A similar feed action protocol occurs for <code>nuv trigger delete</code>,
-<code>nuv trigger update</code> and <code>nuv trigger get</code>.</p><h1 id=implementing-feeds-with-hooks>Implementing Feeds with Hooks</h1><p>It is easy to set up a feed via a hook if the event producer supports a
+architecture. We’ll discuss the other architectures below.</p><p>A similar feed action protocol occurs for <code>ops trigger delete</code>,
+<code>ops trigger update</code> and <code>ops trigger get</code>.</p><h1 id=implementing-feeds-with-hooks>Implementing Feeds with Hooks</h1><p>It is easy to set up a feed via a hook if the event producer supports a
webhook/callback facility.</p><p>With this method there is <em>no need</em> to stand up any persistent service
-outside of OpenWhisk and Nuvolaris. All feed management happens
-naturally though stateless OpenWhisk and Nuvolaris <em>feed actions</em>, which
+outside of OpenWhisk and OpenServerless. All feed management happens
+naturally though stateless OpenWhisk and OpenServerless <em>feed actions</em>, which
negotiate directly with a third part webhook API.</p><p>When invoked with <code>CREATE</code>, the feed action simply installs a webhook
for some other service, asking the remote service to POST notifications
-to the appropriate <code>fireTrigger</code> URL in OpenWhisk and Nuvolaris.</p><p>The webhook should be directed to send notifications to a URL such as:</p><pre><code>POST /namespaces/{namespace}/triggers/{triggerName}
+to the appropriate <code>fireTrigger</code> URL in OpenWhisk and OpenServerless.</p><p>The webhook should be directed to send notifications to a URL such as:</p><pre><code>POST /namespaces/{namespace}/triggers/{triggerName}
</code></pre><p>The form with the POST request will be interpreted as a JSON document
-defining parameters on the trigger event. OpenWhisk and Nuvolaris rules
+defining parameters on the trigger event. OpenWhisk and OpenServerless rules
pass these trigger parameters to any actions to fire as a result of the
-event.</p><h1 id=implementing-feeds-with-polling>Implementing Feeds with Polling</h1><p>It is possible to set up an OpenWhisk and Nuvolaris <em>action</em> to poll a
-feed source entirely within OpenWhisk and Nuvolaris, without the need to
+event.</p><h1 id=implementing-feeds-with-polling>Implementing Feeds with Polling</h1><p>It is possible to set up an OpenWhisk and OpenServerless <em>action</em> to poll a
+feed source entirely within OpenWhisk and OpenServerless, without the need to
stand up any persistent connections or external service.</p><p>For feeds where a webhook is not available, but do not need high-volume
or low latency response times, polling is an attractive option.</p><p>To set up a polling-based feed, the feed action takes the following
steps when called for <code>CREATE</code>:</p><ol><li><p>The feed action sets up a periodic trigger (<em>T</em>) with the desired
frequency, using the <code>whisk.system/alarms</code> feed.</p></li><li><p>The feed developer creates a <code>pollMyService</code> action which simply
polls the remote service and returns any new events.</p></li><li><p>The feed action sets up a <em>rule</em> <em>T → pollMyService</em>.</p></li></ol><p>This procedure implements a polling-based trigger entirely using
-OpenWhisk and Nuvolaris actions, without any need for a separate
+OpenWhisk and OpenServerless actions, without any need for a separate
service.</p><h1 id=implementing-feeds-via-connections>Implementing Feeds via Connections</h1><p>The previous 2 architectural choices are simple and easy to implement.
However, if you want a high-performance feed, there is no substitute for
-persistent connections and long-polling or similar techniques.</p><p>Since OpenWhisk and Nuvolaris actions must be short-running, an action
+persistent connections and long-polling or similar techniques.</p><p>Since OpenWhisk and OpenServerless actions must be short-running, an action
cannot maintain a persistent connection to a third party . Instead, we
-must stand up a separate service (outside of OpenWhisk and Nuvolaris)
+must stand up a separate service (outside of OpenWhisk and OpenServerless)
that runs all the time. We call these <em>provider services</em>. A provider
service can maintain connections to third party event sources that
support long polling or other connection-based notifications.</p><p>The provider service should provide a REST API that allows the OpenWhisk
-and Nuvolaris <em>feed action</em> to control the feed. The provider service
-acts as a proxy between the event provider and OpenWhisk and Nuvolaris –
+and OpenServerless <em>feed action</em> to control the feed. The provider service
+acts as a proxy between the event provider and OpenWhisk and OpenServerless –
when it receives events from the third party, it sends them on to
-OpenWhisk and Nuvolaris by firing a trigger.</p><p>The connection-based architecture is the highest performance option, but
+OpenWhisk and OpenServerless by firing a trigger.</p><p>The connection-based architecture is the highest performance option, but
imposes more overhead on operations compared to the polling and hook
-architectures.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-38495e8c2bc869b2620d6c789f0e418f>2.6 - Annotations</h1><h1 id=annotations>Annotations</h1><p>OpenWhisk and Nuvolaris actions, triggers, rules and packages
+architectures.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-38495e8c2bc869b2620d6c789f0e418f>2.6 - Annotations</h1><h1 id=annotations>Annotations</h1><p>OpenWhisk and OpenServerless actions, triggers, rules and packages
(collectively referred to as assets) may be decorated with
<code>annotations</code>. Annotations are attached to assets just like parameters
with a <code>key</code> that defines a name and <code>value</code> that defines the value. It
is convenient to set them from the command line interface (CLI) via
-<code>--annotation</code> or <code>-a</code> for short.</p><p>Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow
+<code>--annotation</code> or <code>-a</code> for short.</p><p>Rationale: Annotations were added to OpenWhisk and OpenServerless to allow
for experimentation without making changes to the underlying asset
schema. We had, until the writing of this document, deliberately not
defined what <code>annotations</code> are permitted. However as we start to use
annotations more heavily to impart semantic changes, it’s important that
we finally start to document them.</p><p>The most prevalent use of annotations to date is to document actions and
-packages. You’ll see many of the packages in the OpenWhisk and Nuvolaris
+packages. You’ll see many of the packages in the OpenWhisk and OpenServerless
catalog carry annotations such as a description of the functionality
offered by their actions, which parameters are required at package
binding time, and which are invoke-time parameters, whether a parameter
@@ -1799,7 +1799,7 @@ is a “secret” (e.g., password), or not. We have invented these as
needed, for example to allow for UI integration.</p><p>Here is a sample set of annotations for an <code>echo</code> action which returns
its input arguments unmodified (e.g.,
<code>function main(args) { return args }</code>). This action may be useful for
-logging input parameters for example as part of a sequence or rule.</p><pre><code>nuv action create echo echo.js \
+logging input parameters for example as part of a sequence or rule.</p><pre><code>ops action create echo echo.js \
-a description 'An action which returns its input. Useful for logging input to enable debug/replay.' \
-a parameters '[{ "required":false, "description": "Any JSON entity" }]' \
-a sampleInput '{ "msg": "Five fuzzy felines"}' \
@@ -1815,7 +1815,7 @@ may be used more broadly)</p></li></ul><p>The annotations are <em>not</em> check
annotations to infer if a composition of two actions into a sequence is
legal, for example, the system does not yet do that.</p><p>The following annotations on an action are available.</p><ul><li><code>provide-api-key</code>: This annotation may be attached to actions which
require an API key, for example to make REST API calls to the
-OpenWhisk and Nuvolaris host. For newly created actions, if not
+OpenWhisk and OpenServerless host. For newly created actions, if not
specified, it defaults to a false value. For existing actions, the
absence of this annotation, or its presence with a value that is not
<em>falsy</em> (i.e., a value that is different from zero, null, false, and
@@ -1828,7 +1828,7 @@ to <code>true</code> to have an affect. The annotations have no meaning otherwis
in the system. The annotations are:</p><ul><li><p><code>web-export</code>: Makes its corresponding action accessible to REST
calls <em>without</em> authentication. We call these <a href=/docs/reference/entities/annotations/#webactions.adoc><em>web
actions</em></a> because they allow one to use OpenWhisk
-and Nuvolaris actions from a browser for example. It is important to
+and OpenServerless actions from a browser for example. It is important to
note that the <em>owner</em> of the web action incurs the cost of running
them in the system (i.e., the <em>owner</em> of the action also owns the
activations record). The rest of the annotations described below
@@ -1855,12 +1855,12 @@ are:</p><ul><li><p><code>path</code>: the fully qualified path name of the actio
the activation. Note that if this activation was the result of an
action in a package binding, the path refers to the parent package.</p></li><li><p><code>binding</code>: the entity path of the package binding. Note that this is
only present for actions in a package binding.</p></li><li><p><code>kind</code>: the kind of action executed, and one of the support
-OpenWhisk and Nuvolaris runtime kinds.</p></li><li><p><code>limits</code>: the time, memory and log limits that this activation were
+OpenWhisk and OpenServerless runtime kinds.</p></li><li><p><code>limits</code>: the time, memory and log limits that this activation were
subject to.</p></li></ul><p>Additionally for sequence related activations, the system will generate
the following annotations:</p><ul><li><p><code>topmost</code>: this is only present for an outermost sequence action.</p></li><li><p><code>causedBy</code>: this is only present for actions that are contained in a
sequence.</p></li></ul><p>Lastly, and in order to provide you with some performance transparency,
activations also record:</p><ul><li><p><code>waitTime</code>: the time spent waiting in the internal OpenWhisk and
-Nuvolaris system. This is roughly the time spent between the
+OpenServerless system. This is roughly the time spent between the
controller receiving the activation request and when the invoker
provisioned a container for the action.</p></li><li><p><code>initTime</code>: the time spent initializing the function. If this value
is present, the action required initialization and represents a cold
diff --git a/docs/reference/entities/_print/index.html b/docs/reference/entities/_print/index.html
index 4338e7c..e587669 100644
--- a/docs/reference/entities/_print/index.html
+++ b/docs/reference/entities/_print/index.html
@@ -1,27 +1,27 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/entities/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple- [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Entities"><meta property="og:description" content="You can find more informations about Nuvolaris and OpenWhisk entities here:
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Entities"><meta property="og:description" content="You can find more informations about OpenServerless and OpenWhisk entities here:
Actions
Parameters
Annotations
Scheduler
Web Actions
Packages
-Feeds"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Entities"><meta itemprop=description content="You can find more informations about Nuvolaris and OpenWhisk entities here:
+Feeds"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Entities"><meta itemprop=description content="You can find more informations about OpenServerless and OpenWhisk entities here:
Actions
Parameters
Annotations
Scheduler
Web Actions
Packages
-Feeds"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="19"><meta name=twitter:card content="summary"><meta name=twitter:title content="Entities"><meta name=twitter:description content="You can find more informations about Nuvolaris and OpenWhisk entities here:
+Feeds"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="19"><meta name=twitter:card content="summary"><meta name=twitter:title content="Entities"><meta name=twitter:description content="You can find more informations about OpenServerless and OpenWhisk entities here:
Actions
Parameters
Annotations
Scheduler
Web Actions
Packages
-Feeds"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="conta [...]
-<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/>Return to the regular view of this page</a>.</p></div><h1 class=title>Entities</h1><ul><li>1: <a href=#pg-81c0ecd9c622d63e01ce626c30f315ba>Actions</a></li><ul></ul><li>2: <a href=#pg-0fbd1ebffcee5d3c07d1d8080f65183d>Web Actions</a></li><ul></ul><li>3: <a href=#pg-134f790c8d9ec8048316409a5842a9e7>Parameters</a></li><ul></ul><li>4: <a href=#pg-1a65c20d0a8a7e9ac6e3d7ebb32079cf>Packages</a> [...]
+Feeds"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="conta [...]
+<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/>Return to the regular view of this page</a>.</p></div><h1 class=title>Entities</h1><ul><li>1: <a href=#pg-81c0ecd9c622d63e01ce626c30f315ba>Actions</a></li><ul></ul><li>2: <a href=#pg-0fbd1ebffcee5d3c07d1d8080f65183d>Web Actions</a></li><ul></ul><li>3: <a href=#pg-134f790c8d9ec8048316409a5842a9e7>Parameters</a></li><ul></ul><li>4: <a href=#pg-1a65c20d0a8a7e9ac6e3d7ebb32079cf>Packages</a> [...]
here:</p><ul><li><p><a href=/docs/reference/entities/#actions.adoc>Actions</a></p></li><li><p><a href=/docs/reference/entities/#parameters.adoc>Parameters</a></p></li><li><p><a href=/docs/reference/entities/#annotations.adoc>Annotations</a></p></li><li><p><a href=/docs/reference/entities/#scheduler.adoc>Scheduler</a></p></li><li><p><a href=/docs/reference/entities/#webactions.adoc>Web Actions</a></p></li><li><p><a href=/docs/reference/entities/#packages.adoc>Packages</a></p></li><li><p>< [...]
OpenServerless platform. For example, an action can be used to detect
the faces in an image, respond to a database change, respond to an API
@@ -77,10 +77,10 @@ requested with the annotation explicitly
the same as the namespace for the action).</p></li><li><p><code>__OW_ACTION_NAME</code> the fully qualified name of the running action.</p></li><li><p><code>__OW_ACTION_VERSION</code> the internal version number of the running
action.</p></li><li><p><code>__OW_ACTIVATION_ID</code> the activation id for this running action
instance.</p></li><li><p><code>__OW_DEADLINE</code> the approximate time when this action will have
-consumed its entire duration quota (measured in epoch milliseconds).</p></li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-0fbd1ebffcee5d3c07d1d8080f65183d>2 - Web Actions</h1><h1 id=web-actions>Web Actions</h1><p>Web actions are OpenWhisk and Nuvolaris actions annotated to quickly
+consumed its entire duration quota (measured in epoch milliseconds).</p></li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-0fbd1ebffcee5d3c07d1d8080f65183d>2 - Web Actions</h1><h1 id=web-actions>Web Actions</h1><p>Web actions are OpenWhisk and OpenServerless actions annotated to quickly
enable you to build web based applications. This allows you to program
backend logic which your web application can access anonymously without
-requiring an OpenWhisk and Nuvolaris authentication key. It is up to the
+requiring an OpenWhisk and OpenServerless authentication key. It is up to the
action developer to implement their own desired authentication and
authorization (i.e. OAuth flow).</p><p>Web action activations will be associated with the user that created the
action. This actions defers the cost of an action activation from the
@@ -94,13 +94,13 @@ function main({name}) {
}
</code></pre><p>You may create a <em>web action</em> <code>hello</code> in the package <code>demo</code> for the
namespace <code>guest</code> using the CLI’s <code>--web</code> flag with a value of <code>true</code> or
-<code>yes</code>:</p><pre><code>$ nuv package create demo
+<code>yes</code>:</p><pre><code>$ ops package create demo
ok: created package demo
-$ nuv action create demo/hello hello.js --web true
+$ ops action create demo/hello hello.js --web true
ok: created action demo/hello
-$ nuv action get demo/hello --url
+$ ops action get demo/hello --url
ok: got action hello
https://${APIHOST}/api/v1/web/guest/demo/hello
</code></pre><p>Using the <code>--web</code> flag with a value of <code>true</code> or <code>yes</code> allows an action
@@ -159,13 +159,13 @@ the body may be any allowed JSON value. The default content-type may be
omitted from the headers.</p><p>It is important to be aware of the <a href=/docs/reference/entities/webactions/#reference.adoc>response size
limit</a> for actions since a response that exceeds the
predefined system limits will fail. Large objects should not be sent
-inline through OpenWhisk and Nuvolaris, but instead deferred to an
-object store, for example.</p><h2 id=handling-http-requests-with-actions>Handling HTTP requests with actions</h2><p>An OpenWhisk and Nuvolaris action that is not a web action requires both
+inline through OpenWhisk and OpenServerless, but instead deferred to an
+object store, for example.</p><h2 id=handling-http-requests-with-actions>Handling HTTP requests with actions</h2><p>An OpenWhisk and OpenServerless action that is not a web action requires both
authentication and must respond with a JSON object. In contrast, web
actions may be invoked without authentication, and may be used to
implement HTTP handlers that respond with <em>headers</em>, <em>statusCode</em>, and
<em>body</em> content of different types. The web action must still return a
-JSON object, but the OpenWhisk and Nuvolaris system (namely the
+JSON object, but the OpenWhisk and OpenServerless system (namely the
<code>controller</code>) will treat a web action differently if its result includes
one or more of the following as top level JSON properties:</p><ol><li><p><code>headers</code>: a JSON object where the keys are header-names and the
values are string, number, or boolean values for those headers
@@ -186,7 +186,7 @@ and decode the string using a base64 decoder as needed. Should the body
fail to decoded correctly, an error is returned to the caller.</p><h2 id=http-context>HTTP Context</h2><p>All web actions, when invoked, receives additional HTTP request details
as parameters to the action input argument. They are:</p><ol><li><p><code>__ow_method</code> (type: string): the HTTP method of the request.</p></li><li><p><code>__ow_headers</code> (type: map string to string): the request headers.</p></li><li><p><code>__ow_path</code> (type: string): the unmatched path of the request
(matching stops after consuming the action extension).</p></li><li><p><code>__ow_user</code> (type: string): the namespace identifying the OpenWhisk
-and Nuvolaris authenticated subject.</p></li><li><p><code>__ow_body</code> (type: string): the request body entity, as a base64
+and OpenServerless authenticated subject.</p></li><li><p><code>__ow_body</code> (type: string): the request body entity, as a base64
encoded string when content is binary or JSON object/array, or plain
string otherwise.</p></li><li><p><code>__ow_query</code> (type: string): the query parameters from the request
as an unparsed string.</p></li></ol><p>A request may not override any of the named <code>__ow_</code> parameters above;
@@ -313,7 +313,7 @@ shown above.</p><pre><code>$ curl https://${APIHOST}/api/v1/web/guest/demo/hello
the absence of an extension assumes <code>.http</code> as the default. The fully
qualified name of the action must include its package name, which is
<code>default</code> if the action is not in a named package.</p><h2 id=protected-parameters>Protected parameters</h2><p>Action parameters are protected and treated as immutable. Parameters are
-automatically finalized when enabling web actions.</p><pre><code>$ nuv action create /guest/demo/hello hello.js \
+automatically finalized when enabling web actions.</p><pre><code>$ ops action create /guest/demo/hello hello.js \
--parameter name Jane \
--web true
</code></pre><p>The result of these changes is that the <code>name</code> is bound to <code>Jane</code> and
@@ -325,7 +325,7 @@ annotation</a> to
secure the web action. When the <code>require-whisk-auth</code> annotation is set
to <code>true</code>, the action will authenticate the invocation request’s Basic
Authorization credentials to confirm they represent a valid OpenWhisk
-and Nuvolaris identity. When set to a number or a case-sensitive string,
+and OpenServerless identity. When set to a number or a case-sensitive string,
the action’s invocation request must include a <code>X-Require-Whisk-Auth</code>
header having this same value. Secured web actions will return a
<code>Not Authorized</code> when credential validation fails.</p><p>Alternatively, use the <code>--web-secure</code> flag to automatically set the
@@ -333,15 +333,15 @@ header having this same value. Secured web actions will return a
generated as the <code>require-whisk-auth</code> annotation value. When set to
<code>false</code> the <code>require-whisk-auth</code> annotation is removed. When set to any
other value, that value is used as the <code>require-whisk-auth</code> annotation
-value.</p><pre><code>nuv action update /guest/demo/hello hello.js --web true --web-secure my-secret
-</code></pre><p>or</p><pre><code>nuv action update /guest/demo/hello hello.js --web true -a require-whisk-auth my-secret
+value.</p><pre><code>ops action update /guest/demo/hello hello.js --web true --web-secure my-secret
+</code></pre><p>or</p><pre><code>ops action update /guest/demo/hello hello.js --web true -a require-whisk-auth my-secret
curl https://${APIHOST}/api/v1/web/guest/demo/hello.json?name=Jane -X GET -H "X-Require-Whisk-Auth: my-secret"
</code></pre><p>It’s important to note that the owner of the web action owns all of the
web action’s activations records and will incur the cost of running the
action in the system regardless of how the action was invoked.</p><h2 id=disabling-web-actions>Disabling web actions</h2><p>To disable a web action from being invoked via web API
(<code>https://APIHOST/api/v1/web/</code>), pass a value of <code>false</code> or <code>no</code> to the
-<code>--web</code> flag while updating an action with the CLI.</p><pre><code>nuv action update /guest/demo/hello hello.js --web false
+<code>--web</code> flag while updating an action with the CLI.</p><pre><code>ops action update /guest/demo/hello hello.js --web false
</code></pre><h2 id=raw-http-handling>Raw HTTP handling</h2><p>A web action may elect to interpret and process an incoming HTTP body
directly, without the promotion of a JSON object to first class
properties available to the action input (e.g., <code>args.name</code> vs parsing
@@ -366,9 +366,9 @@ parameters and as JSON value in the HTTP request body:</p><pre><code>$ curl http
}
}
</code></pre><h3 id=enabling-raw-http-handling>Enabling raw HTTP handling</h3><p>Raw HTTP web actions are enabled via the <code>--web</code> flag using a value of
-<code>raw</code>.</p><pre><code>nuv action create /guest/demo/hello hello.js --web raw
+<code>raw</code>.</p><pre><code>ops action create /guest/demo/hello hello.js --web raw
</code></pre><h3 id=disabling-raw-http-handling>Disabling raw HTTP handling</h3><p>Disabling raw HTTP can be accomplished by passing a value of <code>false</code> or
-<code>no</code> to the <code>--web</code> flag.</p><pre><code>nuv update create /guest/demo/hello hello.js --web false
+<code>no</code> to the <code>--web</code> flag.</p><pre><code>ops update create /guest/demo/hello hello.js --web false
</code></pre><h3 id=decoding-binary-body-content-from-base64>Decoding binary body content from Base64</h3><p>When using raw HTTP handling, the <code>__ow_body</code> content will be encoded in
Base64 when the request content-type is binary. Below are functions
demonstrating how to decode the body content in Node, Python, and PHP.
@@ -391,7 +391,7 @@ function main(array $args) : array
return ["body" => $decoded];
}
</code></pre><p>As an example, save the Node function as <code>decode.js</code> and execute the
-following commands:</p><pre><code>$ nuv action create decode decode.js --web raw
+following commands:</p><pre><code>$ ops action create decode decode.js --web raw
ok: created action decode
$ curl -k -H "content-type: application" -X POST -d "Decoded body" https://${APIHOST}/api/v1/web/guest/default/decodeNode.json
{
@@ -424,7 +424,7 @@ OPTIONS requests.</p><pre><code>function main(params) {
}
}
</code></pre><p>Save the above function to <code>custom-options.js</code> and execute the following
-commands:</p><pre><code>$ nuv action create custom-option custom-options.js --web true -a web-custom-options true
+commands:</p><pre><code>$ ops action create custom-option custom-options.js --web true -a web-custom-options true
$ curl https://${APIHOST}/api/v1/web/guest/default/custom-options.http -kvX OPTIONS
< HTTP/1.1 200 OK
< Server: nginx/1.11.13
@@ -442,7 +442,7 @@ web action through your package bindings, then you should clone-and-own
the package instead.</p><p>Action parameters are inherited from its package, and the binding if
there is one. You can make package parameters
<a href=/docs/reference/entities/webactions/#annotations.adoc#protected-parameters>immutable</a> by defining their
-values through a package binding.</p><h2 id=error-handling>Error Handling</h2><p>When an OpenWhisk and Nuvolaris action fails, there are two different
+values through a package binding.</p><h2 id=error-handling>Error Handling</h2><p>When an OpenWhisk and OpenServerless action fails, there are two different
failure modes. The first is known as an <em>application error</em> and is
analogous to a caught exception: the action returns a JSON object
containing a top level <code>error</code> property. The second is a <em>developer
@@ -478,11 +478,11 @@ with the following content:</li></ol><pre><code>function main(params) {
}
</code></pre><p>The input parameters are passed as a JSON object parameter to the <code>main</code>
function. Notice how the <code>name</code> and <code>place</code> parameters are retrieved
-from the <code>params</code> object in this example.</p><ol><li>Update the action so it is ready to use:</li></ol><pre><code>nuv action update hello hello.js
+from the <code>params</code> object in this example.</p><ol><li>Update the action so it is ready to use:</li></ol><pre><code>ops action update hello hello.js
</code></pre><ol><li>Parameters can be provided explicitly on the command-line, or by
supplying a file containing the desired parameters</li></ol><p>To pass parameters directly through the command-line, supply a key/value
pair to the <code>--param</code> flag:
-<code>nuv action invoke --result hello --param name Dorothy --param place Kansas</code></p><p>This produces the result:</p><pre><code>{
+<code>ops action invoke --result hello --param name Dorothy --param place Kansas</code></p><p>This produces the result:</p><pre><code>{
"payload": "Hello, Dorothy from Kansas"
}
</code></pre><p>Notice the use of the <code>--result</code> option: it implies a blocking
@@ -495,7 +495,7 @@ structured object. For example, if we update our hello action to:</p><pre><code>
}
</code></pre><p>Now the action expects a single <code>person</code> parameter to have fields <code>name</code>
and <code>place</code>. If we invoke the action with a single <code>person</code> parameter
-that is valid JSON:</p><pre><code>nuv action invoke --result hello -p person '{"name": "Dorothy", "place": "Kansas"}'
+that is valid JSON:</p><pre><code>ops action invoke --result hello -p person '{"name": "Dorothy", "place": "Kansas"}'
</code></pre><p>The result is the same because the CLI automatically parses the <code>person</code>
parameter value into the structured object that the action now expects:
<code>json { "payload": "Hello, Dorothy from Kansas" }</code></p><h1 id=setting-default-parameters-on-an-action>Setting default parameters on an action</h1><p>Actions can be invoked with multiple named parameters. Recall that the
@@ -506,8 +506,8 @@ parameter so that the action defaults to the place “Kansas”:</p><ol><li>Upda
values, or by passing a file that contains the parameters to
<code>--param-file</code> (for examples of using files, see the section on
<a href=/docs/reference/entities/parameters/##working-with-parameter-files>working with parameter files</a>).</li></ol><p>To specify default parameters explicitly on the command-line, provide a
-key/value pair to the <code>param</code> flag:</p><pre><code>nuv action update hello --param place Kansas
-</code></pre><ol><li>Invoke the action, passing only the <code>name</code> parameter this time.</li></ol><pre><code>nuv action invoke --result hello --param name Dorothy
+key/value pair to the <code>param</code> flag:</p><pre><code>ops action update hello --param place Kansas
+</code></pre><ol><li>Invoke the action, passing only the <code>name</code> parameter this time.</li></ol><pre><code>ops action invoke --result hello --param name Dorothy
{
"payload": "Hello, Dorothy from Kansas"
@@ -515,7 +515,7 @@ key/value pair to the <code>param</code> flag:</p><pre><code>nuv action update h
</code></pre><p>Notice that you did not need to specify the <code>place</code> parameter when you
invoked the action. Bound parameters can still be overwritten by
specifying the parameter value at invocation time.</p><ol><li>Invoke the action, passing both <code>name</code> and <code>place</code> values, and
-observe the output:</li></ol><pre><code>nuv action invoke --result hello --param name Dorothy --param place "Washington, DC"
+observe the output:</li></ol><pre><code>ops action invoke --result hello --param name Dorothy --param place "Washington, DC"
{
"payload": "Hello, Dorothy from Washington, DC"
@@ -524,13 +524,13 @@ observe the output:</li></ol><pre><code>nuv action invoke --result hello --param
is overridden by a parameter that was supplied when invoking the action.</p><h1 id=setting-default-parameters-on-a-package>Setting default parameters on a package</h1><p>Parameters can be set at the package level, and these will serve as
default parameters for actions unless:</p><ul><li><p>The action itself has a default parameter.</p></li><li><p>The action has a parameter supplied at invoke time, which will
always be the “winner” where more than one parameter is available.</p></li></ul><p>The following example sets a default parameter of <code>name</code> on the <code>MyApp</code>
-package and shows an action making use of it.</p><ol><li>Create a package with a parameter set:</li></ol><pre><code>nuv package update MyApp --param name World
+package and shows an action making use of it.</p><ol><li>Create a package with a parameter set:</li></ol><pre><code>ops package update MyApp --param name World
</code></pre><ol><li>Create an action in this package:</li></ol><pre><code> function main(params) {
return {payload: "Hello, " + params.name};
}
-nuv action update MyApp/hello hello.js
-</code></pre><ol><li>Invoke the action, and observe the default package parameter in use:</li></ol><pre><code>nuv action invoke --result MyApp/hello
+ops action update MyApp/hello hello.js
+</code></pre><ol><li>Invoke the action, and observe the default package parameter in use:</li></ol><pre><code>ops action invoke --result MyApp/hello
{
"payload": "Hello, World"
@@ -542,39 +542,39 @@ creating/updating them, and when invoking actions.</p><ol><li>As an example, con
earlier. Using <code>hello.js</code> with this content:</li></ol><pre><code>function main(params) {
return {payload: 'Hello, ' + params.name + ' from ' + params.place};
}
-</code></pre><ol><li>Update the action with the updated contents of <code>hello.js</code>:</li></ol><pre><code>nuv action update hello hello.js
+</code></pre><ol><li>Update the action with the updated contents of <code>hello.js</code>:</li></ol><pre><code>ops action update hello hello.js
</code></pre><ol><li>Create a parameter file called <code>parameters.json</code> containing
JSON-formatted parameters:</li></ol><pre><code>{
"name": "Dorothy",
"place": "Kansas"
}
</code></pre><ol><li>Use the <code>parameters.json</code> filename when invoking the action, and
-observe the output</li></ol><pre><code>nuv action invoke --result hello --param-file parameters.json
+observe the output</li></ol><pre><code>ops action invoke --result hello --param-file parameters.json
{
"payload": "Hello, Dorothy from Kansas"
}
-</code></pre></div><div class=td-content style=page-break-before:always><h1 id=pg-1a65c20d0a8a7e9ac6e3d7ebb32079cf>4 - Packages</h1><h1 id=using-and-creating-packages>Using and creating packages</h1><p>In OpenWhisk and Nuvolaris, you can use packages to bundle together a
+</code></pre></div><div class=td-content style=page-break-before:always><h1 id=pg-1a65c20d0a8a7e9ac6e3d7ebb32079cf>4 - Packages</h1><h1 id=using-and-creating-packages>Using and creating packages</h1><p>In OpenWhisk and OpenServerless, you can use packages to bundle together a
set of related actions, and share them with others.</p><p>A package can include <em>actions</em> and <em>feeds</em>. - An action is a piece of
-code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant
+code that runs on OpenWhisk. For example, the Cloudant
package includes actions to read and write records to a Cloudant
database. - A feed is used to configure an external event source to fire
trigger events. For example, the Alarm package includes a feed that can
-fire a trigger at a specified frequency.</p><p>Every OpenWhisk and Nuvolaris entity, including packages, belongs in a
+fire a trigger at a specified frequency.</p><p>Every OpenWhisk and OpenServerless entity, including packages, belongs in a
<em>namespace</em>, and the fully qualified name of an entity is
<code>/namespaceName[/packageName]/entityName</code>. Refer to the <a href=/docs/reference/entities/packages/#reference.adoc#openwhisk-entities>naming
guidelines</a> for more information.</p><p>The following sections describe how to browse packages and use the
triggers and feeds in them. In addition, if you are interested in
contributing your own packages to the catalog, read the sections on
-creating and sharing packages.</p><h2 id=browsing-packages>Browsing packages</h2><p>Several packages are registered with OpenWhisk and Nuvolaris. You can
+creating and sharing packages.</p><h2 id=browsing-packages>Browsing packages</h2><p>Several packages are registered with OpenWhisk and OpenServerless. You can
get a list of packages in a namespace, list the entities in a package,
-and get a description of the individual entities in a package.</p><ol><li>Get a list of packages in the <code>/nuvolaris</code> namespace.</li></ol><pre><code>$ nuv package list /nuvolaris
+and get a description of the individual entities in a package.</p><ol><li>Get a list of packages in the <code>/nuvolaris</code> namespace.</li></ol><pre><code>$ ops package list /nuvolaris
packages
/nuvolaris/openai private
/nuvolaris/mastrogpt private
/nuvolaris/examples private
-</code></pre><ol><li>Get a list of entities in the <code>/nuvolaris/openai</code> package.</li></ol><pre><code>$ nuv package get --summary /nuvolaris/openai
+</code></pre><ol><li>Get a list of entities in the <code>/nuvolaris/openai</code> package.</li></ol><pre><code>$ ops package get --summary /nuvolaris/openai
package /nuvolaris/openai
(parameters: none defined)
action /nuvolaris/openai/models
@@ -589,7 +589,7 @@ means that they are immutable, and cannot be changed by the user. Any
entity listed under a package inherits specific bound parameters from
the package. To view the list of known parameters of an entity belonging
to a package, you will need to run a <code>get --summary</code> of the individual
-entity.</p><ol><li>Get a description of the <code>/nuvolaris/openai/chat</code> action.</li></ol><pre><code>$ nuv action get --summary /nuvolaris/openai/chat
+entity.</p><ol><li>Get a description of the <code>/nuvolaris/openai/chat</code> action.</li></ol><pre><code>$ ops action get --summary /nuvolaris/openai/chat
action /nuvolaris/openai/chat: Returns a result based on parameters OPENAI_API_HOST and OPENAI_API_KEY
(parameters: **OPENAI_API_HOST, **OPENAI_API_KEY)
</code></pre><p><em>NOTE</em>: Notice that the parameters listed for the action <code>read</code> were
@@ -599,33 +599,33 @@ listed under packages, run an individual get summary for the particular
entity.</p><h2 id=creating-a-package>Creating a package</h2><p>A package is used to organize a set of related actions and feeds. It
also allows for parameters to be shared across all entities in the
package.</p><p>To create a custom package with a simple action in it, try the following
-example:</p><ol><li>Create a package called <code>custom</code>.</li></ol><pre><code>$ nuv package create custom
+example:</p><ol><li>Create a package called <code>custom</code>.</li></ol><pre><code>$ ops package create custom
ok: created package custom
-</code></pre><ol><li>Get a summary of the package.</li></ol><pre><code>$ nuv package get --summary custom
+</code></pre><ol><li>Get a summary of the package.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom
(parameters: none defined)
</code></pre><p>Notice that the package is empty.</p><ol><li>Create a file called <code>identity.js</code> that contains the following
action code. This action returns all input parameters.</li></ol><pre><code>function main(args) { return args; }
-</code></pre><ol><li>Create an <code>identity</code> action in the <code>custom</code> package.</li></ol><pre><code>$ nuv action create custom/identity identity.js
+</code></pre><ol><li>Create an <code>identity</code> action in the <code>custom</code> package.</li></ol><pre><code>$ ops action create custom/identity identity.js
ok: created action custom/identity
</code></pre><p>Creating an action in a package requires that you prefix the action name
with a package name. Package nesting is not allowed. A package can
-contain only actions and can’t contain another package.</p><ol><li>Get a summary of the package again.</li></ol><pre><code>$ nuv package get --summary custom
+contain only actions and can’t contain another package.</p><ol><li>Get a summary of the package again.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom
(parameters: none defined)
action /myNamespace/custom/identity
(parameters: none defined)
-</code></pre><p>You can see the <code>custom/identity</code> action in your namespace now.</p><ol><li>Invoke the action in the package.</li></ol><pre><code>$ nuv action invoke --result custom/identity
+</code></pre><p>You can see the <code>custom/identity</code> action in your namespace now.</p><ol><li>Invoke the action in the package.</li></ol><pre><code>$ ops action invoke --result custom/identity
{}
</code></pre><p>You can set default parameters for all the entities in a package. You do
this by setting package-level parameters that are inherited by all
actions in the package. To see how this works, try the following
example:</p><ol><li>Update the <code>custom</code> package with two parameters: <code>city</code> and
-<code>country</code>.</li></ol><pre><code>$ nuv package update custom --param city Austin --param country USA
+<code>country</code>.</li></ol><pre><code>$ ops package update custom --param city Austin --param country USA
ok: updated package custom
</code></pre><ol><li>Display the parameters in the package and action, and see how the
<code>identity</code> action in the package inherits parameters from the
-package.</li></ol><pre><code>$ nuv package get custom
+package.</li></ol><pre><code>$ ops package get custom
ok: got package custom
...
"parameters": [
@@ -640,7 +640,7 @@ ok: got package custom
]
...
-$ nuv action get custom/identity
+$ ops action get custom/identity
ok: got action custom/identity
...
"parameters": [
@@ -655,27 +655,27 @@ ok: got action custom/identity
]
...
</code></pre><ol><li>Invoke the identity action without any parameters to verify that the
-action indeed inherits the parameters.</li></ol><pre><code>$ nuv action invoke --result custom/identity
+action indeed inherits the parameters.</li></ol><pre><code>$ ops action invoke --result custom/identity
{
"city": "Austin",
"country": "USA"
}
</code></pre><ol><li>Invoke the identity action with some parameters. Invocation
parameters are merged with the package parameters; the invocation
-parameters override the package parameters.</li></ol><pre><code>$ nuv action invoke --result custom/identity --param city Dallas --param state Texas
+parameters override the package parameters.</li></ol><pre><code>$ ops action invoke --result custom/identity --param city Dallas --param state Texas
{
"city": "Dallas",
"country": "USA",
"state": "Texas"
}
</code></pre><h2 id=sharing-a-package>Sharing a package</h2><p>After the actions and feeds that comprise a package are debugged and
-tested, the package can be shared with all OpenWhisk and Nuvolaris
+tested, the package can be shared with all OpenWhisk and OpenServerless
users. Sharing the package makes it possible for the users to bind the
package, invoke actions in the package, and author OpenWhisk and
-Nuvolaris rules and sequence actions.</p><ol><li>Share the package with all users:</li></ol><pre><code>$ nuv package update custom --shared yes
+OpenServerless rules and sequence actions.</p><ol><li>Share the package with all users:</li></ol><pre><code>$ ops package update custom --shared yes
ok: updated package custom
</code></pre><ol><li>Display the <code>publish</code> property of the package to verify that it is
-now true.</li></ol><pre><code>$ nuv package get custom
+now true.</li></ol><pre><code>$ ops package get custom
ok: got package custom
...
"publish": true,
@@ -685,30 +685,30 @@ package or directly invoking an action in it. Other users must know the
fully qualified names of the package to bind it or invoke actions in it.
Actions and feeds within a shared package are <em>public</em>. If the package
is private, then all of its contents are also private.</p><ol><li>Get a description of the package to show the fully qualified names
-of the package and action.</li></ol><pre><code>$ nuv package get --summary custom
+of the package and action.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom: Returns a result based on parameters city and country
(parameters: *city, *country)
action /myNamespace/custom/identity
(parameters: none defined)
</code></pre><p>In the previous example, you’re working with the <code>myNamespace</code>
-namespace, and this namespace appears in the fully qualified name.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-edfa631df9f2b93b7371eb7b774a35b8>5 - Feeds</h1><h1 id=implementing-feeds>Implementing feeds</h1><p>OpenWhisk and Nuvolaris support an open API, where any user can expose
+namespace, and this namespace appears in the fully qualified name.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-edfa631df9f2b93b7371eb7b774a35b8>5 - Feeds</h1><h1 id=implementing-feeds>Implementing feeds</h1><p>OpenWhisk and OpenServerless support an open API, where any user can expose
an event producer service as a <strong>feed</strong> in a <strong>package</strong>. This section
describes architectural and implementation options for providing your
-own feed.</p><p>This material is intended for advanced OpenWhisk and Nuvolaris users who
-intend to publish their own feeds. Most OpenWhisk and Nuvolaris users
+own feed.</p><p>This material is intended for advanced OpenWhisk and OpenServerless users who
+intend to publish their own feeds. Most OpenWhisk and OpenServerless users
can safely skip this section.</p><h1 id=feed-architecture>Feed Architecture</h1><p>There are at least 3 architectural patterns for creating a feed:
<strong>Hooks</strong>, <strong>Polling</strong> and <strong>Connections</strong>.</p><h2 id=hooks>Hooks</h2><p>In the <em>Hooks</em> pattern, we set up a feed using a
<a href=https://en.wikipedia.org/wiki/Webhook>webhook</a> facility exposed by
another service. In this strategy, we configure a webhook on an external
service to POST directly to a URL to fire a trigger. This is by far the
-easiest and most attractive option for implementing low-frequency feeds.</p><h2 id=polling>Polling</h2><p>In the <code>Polling</code> pattern, we arrange for an OpenWhisk and Nuvolaris
+easiest and most attractive option for implementing low-frequency feeds.</p><h2 id=polling>Polling</h2><p>In the <code>Polling</code> pattern, we arrange for an OpenWhisk and OpenServerless
<em>action</em> to poll an endpoint periodically to fetch new data. This
pattern is relatively easy to build, but the frequency of events will of
course be limited by the polling interval.</p><h2 id=connections>Connections</h2><p>In the <code>Connections</code> pattern, we stand up a separate service somewhere
that maintains a persistent connection to a feed source. The connection
based implementation might interact with a service endpoint via long
polling, or to set up a push notification.</p><h1 id=difference-between-feed-and-trigger>Difference between Feed and Trigger</h1><p>Feeds and triggers are closely related, but technically distinct
-concepts.</p><ul><li><p>OpenWhisk and Nuvolaris process <strong>events</strong> which flow into the
+concepts.</p><ul><li><p>OpenWhisk and OpenServerless process <strong>events</strong> which flow into the
system.</p></li><li><p>A <strong>trigger</strong> is technically a name for a class of events. Each
event belongs to exactly one trigger; by analogy, a trigger
resembles a <em>topic</em> in topic-based pub-sub systems. A <strong>rule</strong> <em>T →
@@ -718,67 +718,67 @@ A</em> means “whenever an event from trigger <em>T</em> arrives, invoke ac
creating, deleting, pausing, and resuming the stream of events which
comprise a feed. The feed action typically interacts with external
services which produce the events, via a REST API that manages
-notifications.</p></li></ul><h1 id=implementing-feed-actions>Implementing Feed Actions</h1><p>The <em>feed action</em> is a normal OpenWhisk and Nuvolaris <em>action</em>, but it
+notifications.</p></li></ul><h1 id=implementing-feed-actions>Implementing Feed Actions</h1><p>The <em>feed action</em> is a normal OpenWhisk and OpenServerless <em>action</em>, but it
should accept the following parameters: * <strong>lifecycleEvent</strong>: one of
‘CREATE’, ‘READ’, ‘UPDATE’, ‘DELETE’, ‘PAUSE’, or ‘UNPAUSE’. *
<strong>triggerName</strong>: the fully-qualified name of the trigger which contains
events produced from this feed. * <strong>authKey</strong>: the Basic auth
-credentials of the OpenWhisk and Nuvolaris user who owns the trigger
+credentials of the OpenWhisk and OpenServerless user who owns the trigger
just mentioned.</p><p>The feed action can also accept any other parameters it needs to manage
the feed. For example the cloudant changes feed action expects to
receive parameters including <em>`dbname’</em>, <em>`username’</em>, etc.</p><p>When the user creates a trigger from the CLI with the <strong>–feed</strong>
parameter, the system automatically invokes the feed action with the
appropriate parameters.</p><p>For example, assume the user has created a <code>mycloudant</code> binding for the
<code>cloudant</code> package with their username and password as bound parameters.
-When the user issues the following command from the CLI:</p><p><code>nuv trigger create T --feed mycloudant/changes -p dbName myTable</code></p><p>then under the covers the system will do something equivalent to:</p><p><code>nuv action invoke mycloudant/changes -p lifecycleEvent CREATE -p triggerName T -p authKey <userAuthKey> -p password <password value from mycloudant binding> -p username <username value from mycloudant binding> -p dbName mytype</code></p><p>The feed action na [...]
+When the user issues the following command from the CLI:</p><p><code>ops trigger create T --feed mycloudant/changes -p dbName myTable</code></p><p>then under the covers the system will do something equivalent to:</p><p><code>ops action invoke mycloudant/changes -p lifecycleEvent CREATE -p triggerName T -p authKey <userAuthKey> -p password <password value from mycloudant binding> -p username <username value from mycloudant binding> -p dbName mytype</code></p><p>The feed action na [...]
to take whatever action is necessary to set up a stream of events from
Cloudant, with the appropriate configuration, directed to the trigger
<em>T</em>.</p><p>For the Cloudant <em>changes</em> feed, the action happens to talk directly to
a <em>cloudant trigger</em> service we’ve implemented with a connection-based
-architecture. We’ll discuss the other architectures below.</p><p>A similar feed action protocol occurs for <code>nuv trigger delete</code>,
-<code>nuv trigger update</code> and <code>nuv trigger get</code>.</p><h1 id=implementing-feeds-with-hooks>Implementing Feeds with Hooks</h1><p>It is easy to set up a feed via a hook if the event producer supports a
+architecture. We’ll discuss the other architectures below.</p><p>A similar feed action protocol occurs for <code>ops trigger delete</code>,
+<code>ops trigger update</code> and <code>ops trigger get</code>.</p><h1 id=implementing-feeds-with-hooks>Implementing Feeds with Hooks</h1><p>It is easy to set up a feed via a hook if the event producer supports a
webhook/callback facility.</p><p>With this method there is <em>no need</em> to stand up any persistent service
-outside of OpenWhisk and Nuvolaris. All feed management happens
-naturally though stateless OpenWhisk and Nuvolaris <em>feed actions</em>, which
+outside of OpenWhisk and OpenServerless. All feed management happens
+naturally though stateless OpenWhisk and OpenServerless <em>feed actions</em>, which
negotiate directly with a third part webhook API.</p><p>When invoked with <code>CREATE</code>, the feed action simply installs a webhook
for some other service, asking the remote service to POST notifications
-to the appropriate <code>fireTrigger</code> URL in OpenWhisk and Nuvolaris.</p><p>The webhook should be directed to send notifications to a URL such as:</p><pre><code>POST /namespaces/{namespace}/triggers/{triggerName}
+to the appropriate <code>fireTrigger</code> URL in OpenWhisk and OpenServerless.</p><p>The webhook should be directed to send notifications to a URL such as:</p><pre><code>POST /namespaces/{namespace}/triggers/{triggerName}
</code></pre><p>The form with the POST request will be interpreted as a JSON document
-defining parameters on the trigger event. OpenWhisk and Nuvolaris rules
+defining parameters on the trigger event. OpenWhisk and OpenServerless rules
pass these trigger parameters to any actions to fire as a result of the
-event.</p><h1 id=implementing-feeds-with-polling>Implementing Feeds with Polling</h1><p>It is possible to set up an OpenWhisk and Nuvolaris <em>action</em> to poll a
-feed source entirely within OpenWhisk and Nuvolaris, without the need to
+event.</p><h1 id=implementing-feeds-with-polling>Implementing Feeds with Polling</h1><p>It is possible to set up an OpenWhisk and OpenServerless <em>action</em> to poll a
+feed source entirely within OpenWhisk and OpenServerless, without the need to
stand up any persistent connections or external service.</p><p>For feeds where a webhook is not available, but do not need high-volume
or low latency response times, polling is an attractive option.</p><p>To set up a polling-based feed, the feed action takes the following
steps when called for <code>CREATE</code>:</p><ol><li><p>The feed action sets up a periodic trigger (<em>T</em>) with the desired
frequency, using the <code>whisk.system/alarms</code> feed.</p></li><li><p>The feed developer creates a <code>pollMyService</code> action which simply
polls the remote service and returns any new events.</p></li><li><p>The feed action sets up a <em>rule</em> <em>T → pollMyService</em>.</p></li></ol><p>This procedure implements a polling-based trigger entirely using
-OpenWhisk and Nuvolaris actions, without any need for a separate
+OpenWhisk and OpenServerless actions, without any need for a separate
service.</p><h1 id=implementing-feeds-via-connections>Implementing Feeds via Connections</h1><p>The previous 2 architectural choices are simple and easy to implement.
However, if you want a high-performance feed, there is no substitute for
-persistent connections and long-polling or similar techniques.</p><p>Since OpenWhisk and Nuvolaris actions must be short-running, an action
+persistent connections and long-polling or similar techniques.</p><p>Since OpenWhisk and OpenServerless actions must be short-running, an action
cannot maintain a persistent connection to a third party . Instead, we
-must stand up a separate service (outside of OpenWhisk and Nuvolaris)
+must stand up a separate service (outside of OpenWhisk and OpenServerless)
that runs all the time. We call these <em>provider services</em>. A provider
service can maintain connections to third party event sources that
support long polling or other connection-based notifications.</p><p>The provider service should provide a REST API that allows the OpenWhisk
-and Nuvolaris <em>feed action</em> to control the feed. The provider service
-acts as a proxy between the event provider and OpenWhisk and Nuvolaris –
+and OpenServerless <em>feed action</em> to control the feed. The provider service
+acts as a proxy between the event provider and OpenWhisk and OpenServerless –
when it receives events from the third party, it sends them on to
-OpenWhisk and Nuvolaris by firing a trigger.</p><p>The connection-based architecture is the highest performance option, but
+OpenWhisk and OpenServerless by firing a trigger.</p><p>The connection-based architecture is the highest performance option, but
imposes more overhead on operations compared to the polling and hook
-architectures.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-38495e8c2bc869b2620d6c789f0e418f>6 - Annotations</h1><h1 id=annotations>Annotations</h1><p>OpenWhisk and Nuvolaris actions, triggers, rules and packages
+architectures.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-38495e8c2bc869b2620d6c789f0e418f>6 - Annotations</h1><h1 id=annotations>Annotations</h1><p>OpenWhisk and OpenServerless actions, triggers, rules and packages
(collectively referred to as assets) may be decorated with
<code>annotations</code>. Annotations are attached to assets just like parameters
with a <code>key</code> that defines a name and <code>value</code> that defines the value. It
is convenient to set them from the command line interface (CLI) via
-<code>--annotation</code> or <code>-a</code> for short.</p><p>Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow
+<code>--annotation</code> or <code>-a</code> for short.</p><p>Rationale: Annotations were added to OpenWhisk and OpenServerless to allow
for experimentation without making changes to the underlying asset
schema. We had, until the writing of this document, deliberately not
defined what <code>annotations</code> are permitted. However as we start to use
annotations more heavily to impart semantic changes, it’s important that
we finally start to document them.</p><p>The most prevalent use of annotations to date is to document actions and
-packages. You’ll see many of the packages in the OpenWhisk and Nuvolaris
+packages. You’ll see many of the packages in the OpenWhisk and OpenServerless
catalog carry annotations such as a description of the functionality
offered by their actions, which parameters are required at package
binding time, and which are invoke-time parameters, whether a parameter
@@ -786,7 +786,7 @@ is a “secret” (e.g., password), or not. We have invented these as
needed, for example to allow for UI integration.</p><p>Here is a sample set of annotations for an <code>echo</code> action which returns
its input arguments unmodified (e.g.,
<code>function main(args) { return args }</code>). This action may be useful for
-logging input parameters for example as part of a sequence or rule.</p><pre><code>nuv action create echo echo.js \
+logging input parameters for example as part of a sequence or rule.</p><pre><code>ops action create echo echo.js \
-a description 'An action which returns its input. Useful for logging input to enable debug/replay.' \
-a parameters '[{ "required":false, "description": "Any JSON entity" }]' \
-a sampleInput '{ "msg": "Five fuzzy felines"}' \
@@ -802,7 +802,7 @@ may be used more broadly)</p></li></ul><p>The annotations are <em>not</em> check
annotations to infer if a composition of two actions into a sequence is
legal, for example, the system does not yet do that.</p><p>The following annotations on an action are available.</p><ul><li><code>provide-api-key</code>: This annotation may be attached to actions which
require an API key, for example to make REST API calls to the
-OpenWhisk and Nuvolaris host. For newly created actions, if not
+OpenWhisk and OpenServerless host. For newly created actions, if not
specified, it defaults to a false value. For existing actions, the
absence of this annotation, or its presence with a value that is not
<em>falsy</em> (i.e., a value that is different from zero, null, false, and
@@ -815,7 +815,7 @@ to <code>true</code> to have an affect. The annotations have no meaning otherwis
in the system. The annotations are:</p><ul><li><p><code>web-export</code>: Makes its corresponding action accessible to REST
calls <em>without</em> authentication. We call these <a href=/docs/reference/entities/annotations/#webactions.adoc><em>web
actions</em></a> because they allow one to use OpenWhisk
-and Nuvolaris actions from a browser for example. It is important to
+and OpenServerless actions from a browser for example. It is important to
note that the <em>owner</em> of the web action incurs the cost of running
them in the system (i.e., the <em>owner</em> of the action also owns the
activations record). The rest of the annotations described below
@@ -842,12 +842,12 @@ are:</p><ul><li><p><code>path</code>: the fully qualified path name of the actio
the activation. Note that if this activation was the result of an
action in a package binding, the path refers to the parent package.</p></li><li><p><code>binding</code>: the entity path of the package binding. Note that this is
only present for actions in a package binding.</p></li><li><p><code>kind</code>: the kind of action executed, and one of the support
-OpenWhisk and Nuvolaris runtime kinds.</p></li><li><p><code>limits</code>: the time, memory and log limits that this activation were
+OpenWhisk and OpenServerless runtime kinds.</p></li><li><p><code>limits</code>: the time, memory and log limits that this activation were
subject to.</p></li></ul><p>Additionally for sequence related activations, the system will generate
the following annotations:</p><ul><li><p><code>topmost</code>: this is only present for an outermost sequence action.</p></li><li><p><code>causedBy</code>: this is only present for actions that are contained in a
sequence.</p></li></ul><p>Lastly, and in order to provide you with some performance transparency,
activations also record:</p><ul><li><p><code>waitTime</code>: the time spent waiting in the internal OpenWhisk and
-Nuvolaris system. This is roughly the time spent between the
+OpenServerless system. This is roughly the time spent between the
controller receiving the activation request and when the invoker
provisioned a container for the action.</p></li><li><p><code>initTime</code>: the time spent initializing the function. If this value
is present, the action required initialization and represents a cold
diff --git a/docs/reference/entities/actions/_print/index.html b/docs/reference/entities/actions/_print/index.html
index 0ffe481..1b187d4 100644
--- a/docs/reference/entities/actions/_print/index.html
+++ b/docs/reference/entities/actions/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/entities/actions/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/actions/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href= [...]
-<meta name=description content="What Actions are and how to create and execute them"><meta property="og:url" content="/docs/reference/entities/actions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Actions"><meta property="og:description" content="What Actions are and how to create and execute them"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Actions"><meta itemprop=de [...]
+<meta name=description content="What Actions are and how to create and execute them"><meta property="og:url" content="/docs/reference/entities/actions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Actions"><meta property="og:description" content="What Actions are and how to create and execute them"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Actions"><meta itemprop=de [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/actions/>Return to the regular view of this page</a>.</p></div><h1 class=title>Actions</h1><div class=lead>What Actions are and how to create and execute them</div><ul></ul><div class=content><h2 id=actions>Actions</h2><p>Actions are stateless functions that run on the OpenWhisk and
OpenServerless platform. For example, an action can be used to detect
the faces in an image, respond to a database change, respond to an API
diff --git a/docs/reference/entities/actions/index.html b/docs/reference/entities/actions/index.html
index 001a553..5ed99c0 100644
--- a/docs/reference/entities/actions/index.html
+++ b/docs/reference/entities/actions/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/entities/actions/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/actions/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon hr [...]
-<meta name=description content="What Actions are and how to create and execute them"><meta property="og:url" content="/docs/reference/entities/actions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Actions"><meta property="og:description" content="What Actions are and how to create and execute them"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Actions"><meta itemprop=de [...]
+<meta name=description content="What Actions are and how to create and execute them"><meta property="og:url" content="/docs/reference/entities/actions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Actions"><meta property="og:description" content="What Actions are and how to create and execute them"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Actions"><meta itemprop=de [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -140,7 +140,7 @@ the same as the namespace for the action).</p></li><li><p><code>__OW_ACTION_NAME
action.</p></li><li><p><code>__OW_ACTIVATION_ID</code> the activation id for this running action
instance.</p></li><li><p><code>__OW_DEADLINE</code> the approximate time when this action will have
consumed its entire duration quota (measured in epoch milliseconds).</p></li></ul><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/entities/annotations/_print/index.html b/docs/reference/entities/annotations/_print/index.html
index 30f3c93..d5e8e35 100644
--- a/docs/reference/entities/annotations/_print/index.html
+++ b/docs/reference/entities/annotations/_print/index.html
@@ -1,20 +1,20 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/entities/annotations/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/annotations/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-ic [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/annotations/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Annotations"><meta property="og:description" content="Annotations OpenWhisk and Nuvolaris actions, triggers, rules and packages (collectively referred to as assets) may be decorated with annotations. Annotations are attached to assets just like parameters with a key t [...]
-Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow for experimentation without making changes to the underlying asset schema."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Annotations"><meta itemprop=description content="Annotations OpenWhisk and Nuvolaris actions, triggers, rules and packages (collectively referred to as assets) may be decorated with annotations. Annotations are attached to assets just [...]
-Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow for experimentation without making changes to the underlying asset schema."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1162"><meta name=twitter:card content="summary"><meta name=twitter:title content="Annotations"><meta name=twitter:description content="Annotations OpenWhisk and Nuvolaris actions, triggers, rules and packages (collectively referred to as assets) ma [...]
-Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow for experimentation without making changes to the underlying asset schema."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=styles [...]
-<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/annotations/>Return to the regular view of this page</a>.</p></div><h1 class=title>Annotations</h1><ul></ul><div class=content><h1 id=annotations>Annotations</h1><p>OpenWhisk and Nuvolaris actions, triggers, rules and packages
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/annotations/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Annotations"><meta property="og:description" content="Annotations OpenWhisk and OpenServerless actions, triggers, rules and packages (collectively referred to as assets) may be decorated with annotations. Annotations are attached to assets just like parameters with a [...]
+Rationale: Annotations were added to OpenWhisk and OpenServerless to allow for experimentation without making changes to the underlying asset schema."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Annotations"><meta itemprop=description content="Annotations OpenWhisk and OpenServerless actions, triggers, rules and packages (collectively referred to as assets) may be decorated with annotations. Annotations are attached to a [...]
+Rationale: Annotations were added to OpenWhisk and OpenServerless to allow for experimentation without making changes to the underlying asset schema."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1162"><meta name=twitter:card content="summary"><meta name=twitter:title content="Annotations"><meta name=twitter:description content="Annotations OpenWhisk and OpenServerless actions, triggers, rules and packages (collectively referred to as [...]
+Rationale: Annotations were added to OpenWhisk and OpenServerless to allow for experimentation without making changes to the underlying asset schema."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=s [...]
+<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/annotations/>Return to the regular view of this page</a>.</p></div><h1 class=title>Annotations</h1><ul></ul><div class=content><h1 id=annotations>Annotations</h1><p>OpenWhisk and OpenServerless actions, triggers, rules and packages
(collectively referred to as assets) may be decorated with
<code>annotations</code>. Annotations are attached to assets just like parameters
with a <code>key</code> that defines a name and <code>value</code> that defines the value. It
is convenient to set them from the command line interface (CLI) via
-<code>--annotation</code> or <code>-a</code> for short.</p><p>Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow
+<code>--annotation</code> or <code>-a</code> for short.</p><p>Rationale: Annotations were added to OpenWhisk and OpenServerless to allow
for experimentation without making changes to the underlying asset
schema. We had, until the writing of this document, deliberately not
defined what <code>annotations</code> are permitted. However as we start to use
annotations more heavily to impart semantic changes, it’s important that
we finally start to document them.</p><p>The most prevalent use of annotations to date is to document actions and
-packages. You’ll see many of the packages in the OpenWhisk and Nuvolaris
+packages. You’ll see many of the packages in the OpenWhisk and OpenServerless
catalog carry annotations such as a description of the functionality
offered by their actions, which parameters are required at package
binding time, and which are invoke-time parameters, whether a parameter
@@ -22,7 +22,7 @@ is a “secret” (e.g., password), or not. We have invented these as
needed, for example to allow for UI integration.</p><p>Here is a sample set of annotations for an <code>echo</code> action which returns
its input arguments unmodified (e.g.,
<code>function main(args) { return args }</code>). This action may be useful for
-logging input parameters for example as part of a sequence or rule.</p><pre><code>nuv action create echo echo.js \
+logging input parameters for example as part of a sequence or rule.</p><pre><code>ops action create echo echo.js \
-a description 'An action which returns its input. Useful for logging input to enable debug/replay.' \
-a parameters '[{ "required":false, "description": "Any JSON entity" }]' \
-a sampleInput '{ "msg": "Five fuzzy felines"}' \
@@ -38,7 +38,7 @@ may be used more broadly)</p></li></ul><p>The annotations are <em>not</em> check
annotations to infer if a composition of two actions into a sequence is
legal, for example, the system does not yet do that.</p><p>The following annotations on an action are available.</p><ul><li><code>provide-api-key</code>: This annotation may be attached to actions which
require an API key, for example to make REST API calls to the
-OpenWhisk and Nuvolaris host. For newly created actions, if not
+OpenWhisk and OpenServerless host. For newly created actions, if not
specified, it defaults to a false value. For existing actions, the
absence of this annotation, or its presence with a value that is not
<em>falsy</em> (i.e., a value that is different from zero, null, false, and
@@ -51,7 +51,7 @@ to <code>true</code> to have an affect. The annotations have no meaning otherwis
in the system. The annotations are:</p><ul><li><p><code>web-export</code>: Makes its corresponding action accessible to REST
calls <em>without</em> authentication. We call these <a href=/docs/reference/entities/annotations/#webactions.adoc><em>web
actions</em></a> because they allow one to use OpenWhisk
-and Nuvolaris actions from a browser for example. It is important to
+and OpenServerless actions from a browser for example. It is important to
note that the <em>owner</em> of the web action incurs the cost of running
them in the system (i.e., the <em>owner</em> of the action also owns the
activations record). The rest of the annotations described below
@@ -78,12 +78,12 @@ are:</p><ul><li><p><code>path</code>: the fully qualified path name of the actio
the activation. Note that if this activation was the result of an
action in a package binding, the path refers to the parent package.</p></li><li><p><code>binding</code>: the entity path of the package binding. Note that this is
only present for actions in a package binding.</p></li><li><p><code>kind</code>: the kind of action executed, and one of the support
-OpenWhisk and Nuvolaris runtime kinds.</p></li><li><p><code>limits</code>: the time, memory and log limits that this activation were
+OpenWhisk and OpenServerless runtime kinds.</p></li><li><p><code>limits</code>: the time, memory and log limits that this activation were
subject to.</p></li></ul><p>Additionally for sequence related activations, the system will generate
the following annotations:</p><ul><li><p><code>topmost</code>: this is only present for an outermost sequence action.</p></li><li><p><code>causedBy</code>: this is only present for actions that are contained in a
sequence.</p></li></ul><p>Lastly, and in order to provide you with some performance transparency,
activations also record:</p><ul><li><p><code>waitTime</code>: the time spent waiting in the internal OpenWhisk and
-Nuvolaris system. This is roughly the time spent between the
+OpenServerless system. This is roughly the time spent between the
controller receiving the activation request and when the invoker
provisioned a container for the action.</p></li><li><p><code>initTime</code>: the time spent initializing the function. If this value
is present, the action required initialization and represents a cold
diff --git a/docs/reference/entities/annotations/index.html b/docs/reference/entities/annotations/index.html
index 8b6a712..95b6e7c 100644
--- a/docs/reference/entities/annotations/index.html
+++ b/docs/reference/entities/annotations/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/entities/annotations/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/annotations/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/annotations/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Annotations"><meta property="og:description" content="Annotations OpenWhisk and Nuvolaris actions, triggers, rules and packages (collectively referred to as assets) may be decorated with annotations. Annotations are attached to assets just like parameters with a key t [...]
-Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow for experimentation without making changes to the underlying asset schema."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Annotations"><meta itemprop=description content="Annotations OpenWhisk and Nuvolaris actions, triggers, rules and packages (collectively referred to as assets) may be decorated with annotations. Annotations are attached to assets just [...]
-Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow for experimentation without making changes to the underlying asset schema."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1162"><meta name=twitter:card content="summary"><meta name=twitter:title content="Annotations"><meta name=twitter:description content="Annotations OpenWhisk and Nuvolaris actions, triggers, rules and packages (collectively referred to as assets) ma [...]
-Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow for experimentation without making changes to the underlying asset schema."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=styles [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/annotations/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Annotations"><meta property="og:description" content="Annotations OpenWhisk and OpenServerless actions, triggers, rules and packages (collectively referred to as assets) may be decorated with annotations. Annotations are attached to assets just like parameters with a [...]
+Rationale: Annotations were added to OpenWhisk and OpenServerless to allow for experimentation without making changes to the underlying asset schema."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Annotations"><meta itemprop=description content="Annotations OpenWhisk and OpenServerless actions, triggers, rules and packages (collectively referred to as assets) may be decorated with annotations. Annotations are attached to a [...]
+Rationale: Annotations were added to OpenWhisk and OpenServerless to allow for experimentation without making changes to the underlying asset schema."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1162"><meta name=twitter:card content="summary"><meta name=twitter:title content="Annotations"><meta name=twitter:description content="Annotations OpenWhisk and OpenServerless actions, triggers, rules and packages (collectively referred to as [...]
+Rationale: Annotations were added to OpenWhisk and OpenServerless to allow for experimentation without making changes to the underlying asset schema."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=s [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -87,18 +87,18 @@ Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow for experi
<a href="https://github.com/apache/openserverless/issues/new/main/content/en/docs/reference/entities/annotations?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+mat [...]
<a href="https://github.com/apache/openserverless/issues/issues/new?title=Annotations" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
-<a id=print href=/docs/reference/entities/annotations/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class=breadcrumb-item><a href=/docs/reference/entities/>Entities</a></li><li class="breadcrumb-item [...]
+<a id=print href=/docs/reference/entities/annotations/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class=breadcrumb-item><a href=/docs/reference/entities/>Entities</a></li><li class="breadcrumb-item [...]
(collectively referred to as assets) may be decorated with
<code>annotations</code>. Annotations are attached to assets just like parameters
with a <code>key</code> that defines a name and <code>value</code> that defines the value. It
is convenient to set them from the command line interface (CLI) via
-<code>--annotation</code> or <code>-a</code> for short.</p><p>Rationale: Annotations were added to OpenWhisk and Nuvolaris to allow
+<code>--annotation</code> or <code>-a</code> for short.</p><p>Rationale: Annotations were added to OpenWhisk and OpenServerless to allow
for experimentation without making changes to the underlying asset
schema. We had, until the writing of this document, deliberately not
defined what <code>annotations</code> are permitted. However as we start to use
annotations more heavily to impart semantic changes, it’s important that
we finally start to document them.</p><p>The most prevalent use of annotations to date is to document actions and
-packages. You’ll see many of the packages in the OpenWhisk and Nuvolaris
+packages. You’ll see many of the packages in the OpenWhisk and OpenServerless
catalog carry annotations such as a description of the functionality
offered by their actions, which parameters are required at package
binding time, and which are invoke-time parameters, whether a parameter
@@ -106,7 +106,7 @@ is a “secret” (e.g., password), or not. We have invented these as
needed, for example to allow for UI integration.</p><p>Here is a sample set of annotations for an <code>echo</code> action which returns
its input arguments unmodified (e.g.,
<code>function main(args) { return args }</code>). This action may be useful for
-logging input parameters for example as part of a sequence or rule.</p><pre><code>nuv action create echo echo.js \
+logging input parameters for example as part of a sequence or rule.</p><pre><code>ops action create echo echo.js \
-a description 'An action which returns its input. Useful for logging input to enable debug/replay.' \
-a parameters '[{ "required":false, "description": "Any JSON entity" }]' \
-a sampleInput '{ "msg": "Five fuzzy felines"}' \
@@ -122,7 +122,7 @@ may be used more broadly)</p></li></ul><p>The annotations are <em>not</em> check
annotations to infer if a composition of two actions into a sequence is
legal, for example, the system does not yet do that.</p><p>The following annotations on an action are available.</p><ul><li><code>provide-api-key</code>: This annotation may be attached to actions which
require an API key, for example to make REST API calls to the
-OpenWhisk and Nuvolaris host. For newly created actions, if not
+OpenWhisk and OpenServerless host. For newly created actions, if not
specified, it defaults to a false value. For existing actions, the
absence of this annotation, or its presence with a value that is not
<em>falsy</em> (i.e., a value that is different from zero, null, false, and
@@ -135,7 +135,7 @@ to <code>true</code> to have an affect. The annotations have no meaning otherwis
in the system. The annotations are:</p><ul><li><p><code>web-export</code>: Makes its corresponding action accessible to REST
calls <em>without</em> authentication. We call these <a href=/docs/reference/entities/annotations/#webactions.adoc><em>web
actions</em></a> because they allow one to use OpenWhisk
-and Nuvolaris actions from a browser for example. It is important to
+and OpenServerless actions from a browser for example. It is important to
note that the <em>owner</em> of the web action incurs the cost of running
them in the system (i.e., the <em>owner</em> of the action also owns the
activations record). The rest of the annotations described below
@@ -162,12 +162,12 @@ are:</p><ul><li><p><code>path</code>: the fully qualified path name of the actio
the activation. Note that if this activation was the result of an
action in a package binding, the path refers to the parent package.</p></li><li><p><code>binding</code>: the entity path of the package binding. Note that this is
only present for actions in a package binding.</p></li><li><p><code>kind</code>: the kind of action executed, and one of the support
-OpenWhisk and Nuvolaris runtime kinds.</p></li><li><p><code>limits</code>: the time, memory and log limits that this activation were
+OpenWhisk and OpenServerless runtime kinds.</p></li><li><p><code>limits</code>: the time, memory and log limits that this activation were
subject to.</p></li></ul><p>Additionally for sequence related activations, the system will generate
the following annotations:</p><ul><li><p><code>topmost</code>: this is only present for an outermost sequence action.</p></li><li><p><code>causedBy</code>: this is only present for actions that are contained in a
sequence.</p></li></ul><p>Lastly, and in order to provide you with some performance transparency,
activations also record:</p><ul><li><p><code>waitTime</code>: the time spent waiting in the internal OpenWhisk and
-Nuvolaris system. This is roughly the time spent between the
+OpenServerless system. This is roughly the time spent between the
controller receiving the activation request and when the invoker
provisioned a container for the action.</p></li><li><p><code>initTime</code>: the time spent initializing the function. If this value
is present, the action required initialization and represents a cold
@@ -200,7 +200,7 @@ record is shown below.</p><pre><code>"annotations": [
}
]
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/entities/feeds/_print/index.html b/docs/reference/entities/feeds/_print/index.html
index 314c483..6b15d2e 100644
--- a/docs/reference/entities/feeds/_print/index.html
+++ b/docs/reference/entities/feeds/_print/index.html
@@ -1,29 +1,29 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/entities/feeds/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/feeds/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/fav [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/feeds/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Feeds"><meta property="og:description" content="Implementing feeds OpenWhisk and Nuvolaris support an open API, where any user can expose an event producer service as a feed in a package. This section describes architectural and implementation options for providing your own feed.
-This material is intended for advanced OpenWhisk and Nuvolaris users who intend to publish their own feeds. Most OpenWhisk and Nuvolaris users can safely skip this section.
-Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Feeds"><meta itemprop=description content="Implementing feeds OpenWhisk and Nuvolaris support an open API, where any user can expose an event producer service as a feed in a package. This section describes architectural and implementation options for providing you [...]
-This material is intended for advanced OpenWhisk and Nuvolaris users who intend to publish their own feeds. Most OpenWhisk and Nuvolaris users can safely skip this section.
-Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1087"><meta name=twitter:card content="summary"><meta name=twitter:title content="Feeds"><meta name=twitter:description content="Implementing feeds OpenWhisk and Nuvolaris support an open API, where any user can expose an event producer service as a feed in a package. This sect [...]
-This material is intended for advanced OpenWhisk and Nuvolaris users who intend to publish their own feeds. Most OpenWhisk and Nuvolaris users can safely skip this section.
-Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></hea [...]
-<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/feeds/>Return to the regular view of this page</a>.</p></div><h1 class=title>Feeds</h1><ul></ul><div class=content><h1 id=implementing-feeds>Implementing feeds</h1><p>OpenWhisk and Nuvolaris support an open API, where any user can expose
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/feeds/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Feeds"><meta property="og:description" content="Implementing feeds OpenWhisk and OpenServerless support an open API, where any user can expose an event producer service as a feed in a package. This section describes architectural and implementation options for providing you [...]
+This material is intended for advanced OpenWhisk and OpenServerless users who intend to publish their own feeds. Most OpenWhisk and OpenServerless users can safely skip this section.
+Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Feeds"><meta itemprop=description content="Implementing feeds OpenWhisk and OpenServerless support an open API, where any user can expose an event producer service as a feed in a package. This section describes architectural and implementation options for providin [...]
+This material is intended for advanced OpenWhisk and OpenServerless users who intend to publish their own feeds. Most OpenWhisk and OpenServerless users can safely skip this section.
+Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1087"><meta name=twitter:card content="summary"><meta name=twitter:title content="Feeds"><meta name=twitter:description content="Implementing feeds OpenWhisk and OpenServerless support an open API, where any user can expose an event producer service as a feed in a package. This [...]
+This material is intended for advanced OpenWhisk and OpenServerless users who intend to publish their own feeds. Most OpenWhisk and OpenServerless users can safely skip this section.
+Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></hea [...]
+<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/feeds/>Return to the regular view of this page</a>.</p></div><h1 class=title>Feeds</h1><ul></ul><div class=content><h1 id=implementing-feeds>Implementing feeds</h1><p>OpenWhisk and OpenServerless support an open API, where any user can expose
an event producer service as a <strong>feed</strong> in a <strong>package</strong>. This section
describes architectural and implementation options for providing your
-own feed.</p><p>This material is intended for advanced OpenWhisk and Nuvolaris users who
-intend to publish their own feeds. Most OpenWhisk and Nuvolaris users
+own feed.</p><p>This material is intended for advanced OpenWhisk and OpenServerless users who
+intend to publish their own feeds. Most OpenWhisk and OpenServerless users
can safely skip this section.</p><h1 id=feed-architecture>Feed Architecture</h1><p>There are at least 3 architectural patterns for creating a feed:
<strong>Hooks</strong>, <strong>Polling</strong> and <strong>Connections</strong>.</p><h2 id=hooks>Hooks</h2><p>In the <em>Hooks</em> pattern, we set up a feed using a
<a href=https://en.wikipedia.org/wiki/Webhook>webhook</a> facility exposed by
another service. In this strategy, we configure a webhook on an external
service to POST directly to a URL to fire a trigger. This is by far the
-easiest and most attractive option for implementing low-frequency feeds.</p><h2 id=polling>Polling</h2><p>In the <code>Polling</code> pattern, we arrange for an OpenWhisk and Nuvolaris
+easiest and most attractive option for implementing low-frequency feeds.</p><h2 id=polling>Polling</h2><p>In the <code>Polling</code> pattern, we arrange for an OpenWhisk and OpenServerless
<em>action</em> to poll an endpoint periodically to fetch new data. This
pattern is relatively easy to build, but the frequency of events will of
course be limited by the polling interval.</p><h2 id=connections>Connections</h2><p>In the <code>Connections</code> pattern, we stand up a separate service somewhere
that maintains a persistent connection to a feed source. The connection
based implementation might interact with a service endpoint via long
polling, or to set up a push notification.</p><h1 id=difference-between-feed-and-trigger>Difference between Feed and Trigger</h1><p>Feeds and triggers are closely related, but technically distinct
-concepts.</p><ul><li><p>OpenWhisk and Nuvolaris process <strong>events</strong> which flow into the
+concepts.</p><ul><li><p>OpenWhisk and OpenServerless process <strong>events</strong> which flow into the
system.</p></li><li><p>A <strong>trigger</strong> is technically a name for a class of events. Each
event belongs to exactly one trigger; by analogy, a trigger
resembles a <em>topic</em> in topic-based pub-sub systems. A <strong>rule</strong> <em>T →
@@ -33,54 +33,54 @@ A</em> means “whenever an event from trigger <em>T</em> arrives, invoke ac
creating, deleting, pausing, and resuming the stream of events which
comprise a feed. The feed action typically interacts with external
services which produce the events, via a REST API that manages
-notifications.</p></li></ul><h1 id=implementing-feed-actions>Implementing Feed Actions</h1><p>The <em>feed action</em> is a normal OpenWhisk and Nuvolaris <em>action</em>, but it
+notifications.</p></li></ul><h1 id=implementing-feed-actions>Implementing Feed Actions</h1><p>The <em>feed action</em> is a normal OpenWhisk and OpenServerless <em>action</em>, but it
should accept the following parameters: * <strong>lifecycleEvent</strong>: one of
‘CREATE’, ‘READ’, ‘UPDATE’, ‘DELETE’, ‘PAUSE’, or ‘UNPAUSE’. *
<strong>triggerName</strong>: the fully-qualified name of the trigger which contains
events produced from this feed. * <strong>authKey</strong>: the Basic auth
-credentials of the OpenWhisk and Nuvolaris user who owns the trigger
+credentials of the OpenWhisk and OpenServerless user who owns the trigger
just mentioned.</p><p>The feed action can also accept any other parameters it needs to manage
the feed. For example the cloudant changes feed action expects to
receive parameters including <em>`dbname’</em>, <em>`username’</em>, etc.</p><p>When the user creates a trigger from the CLI with the <strong>–feed</strong>
parameter, the system automatically invokes the feed action with the
appropriate parameters.</p><p>For example, assume the user has created a <code>mycloudant</code> binding for the
<code>cloudant</code> package with their username and password as bound parameters.
-When the user issues the following command from the CLI:</p><p><code>nuv trigger create T --feed mycloudant/changes -p dbName myTable</code></p><p>then under the covers the system will do something equivalent to:</p><p><code>nuv action invoke mycloudant/changes -p lifecycleEvent CREATE -p triggerName T -p authKey <userAuthKey> -p password <password value from mycloudant binding> -p username <username value from mycloudant binding> -p dbName mytype</code></p><p>The feed action na [...]
+When the user issues the following command from the CLI:</p><p><code>ops trigger create T --feed mycloudant/changes -p dbName myTable</code></p><p>then under the covers the system will do something equivalent to:</p><p><code>ops action invoke mycloudant/changes -p lifecycleEvent CREATE -p triggerName T -p authKey <userAuthKey> -p password <password value from mycloudant binding> -p username <username value from mycloudant binding> -p dbName mytype</code></p><p>The feed action na [...]
to take whatever action is necessary to set up a stream of events from
Cloudant, with the appropriate configuration, directed to the trigger
<em>T</em>.</p><p>For the Cloudant <em>changes</em> feed, the action happens to talk directly to
a <em>cloudant trigger</em> service we’ve implemented with a connection-based
-architecture. We’ll discuss the other architectures below.</p><p>A similar feed action protocol occurs for <code>nuv trigger delete</code>,
-<code>nuv trigger update</code> and <code>nuv trigger get</code>.</p><h1 id=implementing-feeds-with-hooks>Implementing Feeds with Hooks</h1><p>It is easy to set up a feed via a hook if the event producer supports a
+architecture. We’ll discuss the other architectures below.</p><p>A similar feed action protocol occurs for <code>ops trigger delete</code>,
+<code>ops trigger update</code> and <code>ops trigger get</code>.</p><h1 id=implementing-feeds-with-hooks>Implementing Feeds with Hooks</h1><p>It is easy to set up a feed via a hook if the event producer supports a
webhook/callback facility.</p><p>With this method there is <em>no need</em> to stand up any persistent service
-outside of OpenWhisk and Nuvolaris. All feed management happens
-naturally though stateless OpenWhisk and Nuvolaris <em>feed actions</em>, which
+outside of OpenWhisk and OpenServerless. All feed management happens
+naturally though stateless OpenWhisk and OpenServerless <em>feed actions</em>, which
negotiate directly with a third part webhook API.</p><p>When invoked with <code>CREATE</code>, the feed action simply installs a webhook
for some other service, asking the remote service to POST notifications
-to the appropriate <code>fireTrigger</code> URL in OpenWhisk and Nuvolaris.</p><p>The webhook should be directed to send notifications to a URL such as:</p><pre><code>POST /namespaces/{namespace}/triggers/{triggerName}
+to the appropriate <code>fireTrigger</code> URL in OpenWhisk and OpenServerless.</p><p>The webhook should be directed to send notifications to a URL such as:</p><pre><code>POST /namespaces/{namespace}/triggers/{triggerName}
</code></pre><p>The form with the POST request will be interpreted as a JSON document
-defining parameters on the trigger event. OpenWhisk and Nuvolaris rules
+defining parameters on the trigger event. OpenWhisk and OpenServerless rules
pass these trigger parameters to any actions to fire as a result of the
-event.</p><h1 id=implementing-feeds-with-polling>Implementing Feeds with Polling</h1><p>It is possible to set up an OpenWhisk and Nuvolaris <em>action</em> to poll a
-feed source entirely within OpenWhisk and Nuvolaris, without the need to
+event.</p><h1 id=implementing-feeds-with-polling>Implementing Feeds with Polling</h1><p>It is possible to set up an OpenWhisk and OpenServerless <em>action</em> to poll a
+feed source entirely within OpenWhisk and OpenServerless, without the need to
stand up any persistent connections or external service.</p><p>For feeds where a webhook is not available, but do not need high-volume
or low latency response times, polling is an attractive option.</p><p>To set up a polling-based feed, the feed action takes the following
steps when called for <code>CREATE</code>:</p><ol><li><p>The feed action sets up a periodic trigger (<em>T</em>) with the desired
frequency, using the <code>whisk.system/alarms</code> feed.</p></li><li><p>The feed developer creates a <code>pollMyService</code> action which simply
polls the remote service and returns any new events.</p></li><li><p>The feed action sets up a <em>rule</em> <em>T → pollMyService</em>.</p></li></ol><p>This procedure implements a polling-based trigger entirely using
-OpenWhisk and Nuvolaris actions, without any need for a separate
+OpenWhisk and OpenServerless actions, without any need for a separate
service.</p><h1 id=implementing-feeds-via-connections>Implementing Feeds via Connections</h1><p>The previous 2 architectural choices are simple and easy to implement.
However, if you want a high-performance feed, there is no substitute for
-persistent connections and long-polling or similar techniques.</p><p>Since OpenWhisk and Nuvolaris actions must be short-running, an action
+persistent connections and long-polling or similar techniques.</p><p>Since OpenWhisk and OpenServerless actions must be short-running, an action
cannot maintain a persistent connection to a third party . Instead, we
-must stand up a separate service (outside of OpenWhisk and Nuvolaris)
+must stand up a separate service (outside of OpenWhisk and OpenServerless)
that runs all the time. We call these <em>provider services</em>. A provider
service can maintain connections to third party event sources that
support long polling or other connection-based notifications.</p><p>The provider service should provide a REST API that allows the OpenWhisk
-and Nuvolaris <em>feed action</em> to control the feed. The provider service
-acts as a proxy between the event provider and OpenWhisk and Nuvolaris –
+and OpenServerless <em>feed action</em> to control the feed. The provider service
+acts as a proxy between the event provider and OpenWhisk and OpenServerless –
when it receives events from the third party, it sends them on to
-OpenWhisk and Nuvolaris by firing a trigger.</p><p>The connection-based architecture is the highest performance option, but
+OpenWhisk and OpenServerless by firing a trigger.</p><p>The connection-based architecture is the highest performance option, but
imposes more overhead on operations compared to the polling and hook
architectures.</p></div></div></main></div></div><footer class="td-footer row d-print-none"><div class=container-fluid><div class="disclaimer text-center"><div class="row mx-md-2"><div class="td-footer__left col-6 col-sm-2 order-sm-1"> </div><div class="td-footer__right col-6 col-sm-2 order-sm-3"> </div><div class="td-footer__center col-12 col-sm-8 py-2 order-sm-2"><p>Apache Openserverless™ is an effort undergoing incubation at The Apache Software Foundation (ASF),
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
diff --git a/docs/reference/entities/feeds/index.html b/docs/reference/entities/feeds/index.html
index 2ab5cf7..3692999 100644
--- a/docs/reference/entities/feeds/index.html
+++ b/docs/reference/entities/feeds/index.html
@@ -1,11 +1,11 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/entities/feeds/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/feeds/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/ [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/feeds/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Feeds"><meta property="og:description" content="Implementing feeds OpenWhisk and Nuvolaris support an open API, where any user can expose an event producer service as a feed in a package. This section describes architectural and implementation options for providing your own feed.
-This material is intended for advanced OpenWhisk and Nuvolaris users who intend to publish their own feeds. Most OpenWhisk and Nuvolaris users can safely skip this section.
-Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Feeds"><meta itemprop=description content="Implementing feeds OpenWhisk and Nuvolaris support an open API, where any user can expose an event producer service as a feed in a package. This section describes architectural and implementation options for providing you [...]
-This material is intended for advanced OpenWhisk and Nuvolaris users who intend to publish their own feeds. Most OpenWhisk and Nuvolaris users can safely skip this section.
-Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1087"><meta name=twitter:card content="summary"><meta name=twitter:title content="Feeds"><meta name=twitter:description content="Implementing feeds OpenWhisk and Nuvolaris support an open API, where any user can expose an event producer service as a feed in a package. This sect [...]
-This material is intended for advanced OpenWhisk and Nuvolaris users who intend to publish their own feeds. Most OpenWhisk and Nuvolaris users can safely skip this section.
-Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></hea [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/feeds/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Feeds"><meta property="og:description" content="Implementing feeds OpenWhisk and OpenServerless support an open API, where any user can expose an event producer service as a feed in a package. This section describes architectural and implementation options for providing you [...]
+This material is intended for advanced OpenWhisk and OpenServerless users who intend to publish their own feeds. Most OpenWhisk and OpenServerless users can safely skip this section.
+Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Feeds"><meta itemprop=description content="Implementing feeds OpenWhisk and OpenServerless support an open API, where any user can expose an event producer service as a feed in a package. This section describes architectural and implementation options for providin [...]
+This material is intended for advanced OpenWhisk and OpenServerless users who intend to publish their own feeds. Most OpenWhisk and OpenServerless users can safely skip this section.
+Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1087"><meta name=twitter:card content="summary"><meta name=twitter:title content="Feeds"><meta name=twitter:description content="Implementing feeds OpenWhisk and OpenServerless support an open API, where any user can expose an event producer service as a feed in a package. This [...]
+This material is intended for advanced OpenWhisk and OpenServerless users who intend to publish their own feeds. Most OpenWhisk and OpenServerless users can safely skip this section.
+Feed Architecture There are at least 3 architectural patterns for creating a feed: Hooks, Polling and Connections."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></hea [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -90,24 +90,24 @@ Feed Architecture There are at least 3 architectural patterns for creating a fee
<a href="https://github.com/apache/openserverless/issues/new/main/content/en/docs/reference/entities/feeds?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22 [...]
<a href="https://github.com/apache/openserverless/issues/issues/new?title=Feeds" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
-<a id=print href=/docs/reference/entities/feeds/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#hooks>Hooks</a></li><li><a href=#polling>Polling</a></li><li><a href=#connections>Connections</a></li></ul></nav></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li> [...]
+<a id=print href=/docs/reference/entities/feeds/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#hooks>Hooks</a></li><li><a href=#polling>Polling</a></li><li><a href=#connections>Connections</a></li></ul></nav></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li> [...]
an event producer service as a <strong>feed</strong> in a <strong>package</strong>. This section
describes architectural and implementation options for providing your
-own feed.</p><p>This material is intended for advanced OpenWhisk and Nuvolaris users who
-intend to publish their own feeds. Most OpenWhisk and Nuvolaris users
+own feed.</p><p>This material is intended for advanced OpenWhisk and OpenServerless users who
+intend to publish their own feeds. Most OpenWhisk and OpenServerless users
can safely skip this section.</p><h1 id=feed-architecture>Feed Architecture</h1><p>There are at least 3 architectural patterns for creating a feed:
<strong>Hooks</strong>, <strong>Polling</strong> and <strong>Connections</strong>.</p><h2 id=hooks>Hooks</h2><p>In the <em>Hooks</em> pattern, we set up a feed using a
<a href=https://en.wikipedia.org/wiki/Webhook>webhook</a> facility exposed by
another service. In this strategy, we configure a webhook on an external
service to POST directly to a URL to fire a trigger. This is by far the
-easiest and most attractive option for implementing low-frequency feeds.</p><h2 id=polling>Polling</h2><p>In the <code>Polling</code> pattern, we arrange for an OpenWhisk and Nuvolaris
+easiest and most attractive option for implementing low-frequency feeds.</p><h2 id=polling>Polling</h2><p>In the <code>Polling</code> pattern, we arrange for an OpenWhisk and OpenServerless
<em>action</em> to poll an endpoint periodically to fetch new data. This
pattern is relatively easy to build, but the frequency of events will of
course be limited by the polling interval.</p><h2 id=connections>Connections</h2><p>In the <code>Connections</code> pattern, we stand up a separate service somewhere
that maintains a persistent connection to a feed source. The connection
based implementation might interact with a service endpoint via long
polling, or to set up a push notification.</p><h1 id=difference-between-feed-and-trigger>Difference between Feed and Trigger</h1><p>Feeds and triggers are closely related, but technically distinct
-concepts.</p><ul><li><p>OpenWhisk and Nuvolaris process <strong>events</strong> which flow into the
+concepts.</p><ul><li><p>OpenWhisk and OpenServerless process <strong>events</strong> which flow into the
system.</p></li><li><p>A <strong>trigger</strong> is technically a name for a class of events. Each
event belongs to exactly one trigger; by analogy, a trigger
resembles a <em>topic</em> in topic-based pub-sub systems. A <strong>rule</strong> <em>T →
@@ -117,57 +117,57 @@ A</em> means “whenever an event from trigger <em>T</em> arrives, invoke ac
creating, deleting, pausing, and resuming the stream of events which
comprise a feed. The feed action typically interacts with external
services which produce the events, via a REST API that manages
-notifications.</p></li></ul><h1 id=implementing-feed-actions>Implementing Feed Actions</h1><p>The <em>feed action</em> is a normal OpenWhisk and Nuvolaris <em>action</em>, but it
+notifications.</p></li></ul><h1 id=implementing-feed-actions>Implementing Feed Actions</h1><p>The <em>feed action</em> is a normal OpenWhisk and OpenServerless <em>action</em>, but it
should accept the following parameters: * <strong>lifecycleEvent</strong>: one of
‘CREATE’, ‘READ’, ‘UPDATE’, ‘DELETE’, ‘PAUSE’, or ‘UNPAUSE’. *
<strong>triggerName</strong>: the fully-qualified name of the trigger which contains
events produced from this feed. * <strong>authKey</strong>: the Basic auth
-credentials of the OpenWhisk and Nuvolaris user who owns the trigger
+credentials of the OpenWhisk and OpenServerless user who owns the trigger
just mentioned.</p><p>The feed action can also accept any other parameters it needs to manage
the feed. For example the cloudant changes feed action expects to
receive parameters including <em>`dbname’</em>, <em>`username’</em>, etc.</p><p>When the user creates a trigger from the CLI with the <strong>–feed</strong>
parameter, the system automatically invokes the feed action with the
appropriate parameters.</p><p>For example, assume the user has created a <code>mycloudant</code> binding for the
<code>cloudant</code> package with their username and password as bound parameters.
-When the user issues the following command from the CLI:</p><p><code>nuv trigger create T --feed mycloudant/changes -p dbName myTable</code></p><p>then under the covers the system will do something equivalent to:</p><p><code>nuv action invoke mycloudant/changes -p lifecycleEvent CREATE -p triggerName T -p authKey <userAuthKey> -p password <password value from mycloudant binding> -p username <username value from mycloudant binding> -p dbName mytype</code></p><p>The feed action na [...]
+When the user issues the following command from the CLI:</p><p><code>ops trigger create T --feed mycloudant/changes -p dbName myTable</code></p><p>then under the covers the system will do something equivalent to:</p><p><code>ops action invoke mycloudant/changes -p lifecycleEvent CREATE -p triggerName T -p authKey <userAuthKey> -p password <password value from mycloudant binding> -p username <username value from mycloudant binding> -p dbName mytype</code></p><p>The feed action na [...]
to take whatever action is necessary to set up a stream of events from
Cloudant, with the appropriate configuration, directed to the trigger
<em>T</em>.</p><p>For the Cloudant <em>changes</em> feed, the action happens to talk directly to
a <em>cloudant trigger</em> service we’ve implemented with a connection-based
-architecture. We’ll discuss the other architectures below.</p><p>A similar feed action protocol occurs for <code>nuv trigger delete</code>,
-<code>nuv trigger update</code> and <code>nuv trigger get</code>.</p><h1 id=implementing-feeds-with-hooks>Implementing Feeds with Hooks</h1><p>It is easy to set up a feed via a hook if the event producer supports a
+architecture. We’ll discuss the other architectures below.</p><p>A similar feed action protocol occurs for <code>ops trigger delete</code>,
+<code>ops trigger update</code> and <code>ops trigger get</code>.</p><h1 id=implementing-feeds-with-hooks>Implementing Feeds with Hooks</h1><p>It is easy to set up a feed via a hook if the event producer supports a
webhook/callback facility.</p><p>With this method there is <em>no need</em> to stand up any persistent service
-outside of OpenWhisk and Nuvolaris. All feed management happens
-naturally though stateless OpenWhisk and Nuvolaris <em>feed actions</em>, which
+outside of OpenWhisk and OpenServerless. All feed management happens
+naturally though stateless OpenWhisk and OpenServerless <em>feed actions</em>, which
negotiate directly with a third part webhook API.</p><p>When invoked with <code>CREATE</code>, the feed action simply installs a webhook
for some other service, asking the remote service to POST notifications
-to the appropriate <code>fireTrigger</code> URL in OpenWhisk and Nuvolaris.</p><p>The webhook should be directed to send notifications to a URL such as:</p><pre><code>POST /namespaces/{namespace}/triggers/{triggerName}
+to the appropriate <code>fireTrigger</code> URL in OpenWhisk and OpenServerless.</p><p>The webhook should be directed to send notifications to a URL such as:</p><pre><code>POST /namespaces/{namespace}/triggers/{triggerName}
</code></pre><p>The form with the POST request will be interpreted as a JSON document
-defining parameters on the trigger event. OpenWhisk and Nuvolaris rules
+defining parameters on the trigger event. OpenWhisk and OpenServerless rules
pass these trigger parameters to any actions to fire as a result of the
-event.</p><h1 id=implementing-feeds-with-polling>Implementing Feeds with Polling</h1><p>It is possible to set up an OpenWhisk and Nuvolaris <em>action</em> to poll a
-feed source entirely within OpenWhisk and Nuvolaris, without the need to
+event.</p><h1 id=implementing-feeds-with-polling>Implementing Feeds with Polling</h1><p>It is possible to set up an OpenWhisk and OpenServerless <em>action</em> to poll a
+feed source entirely within OpenWhisk and OpenServerless, without the need to
stand up any persistent connections or external service.</p><p>For feeds where a webhook is not available, but do not need high-volume
or low latency response times, polling is an attractive option.</p><p>To set up a polling-based feed, the feed action takes the following
steps when called for <code>CREATE</code>:</p><ol><li><p>The feed action sets up a periodic trigger (<em>T</em>) with the desired
frequency, using the <code>whisk.system/alarms</code> feed.</p></li><li><p>The feed developer creates a <code>pollMyService</code> action which simply
polls the remote service and returns any new events.</p></li><li><p>The feed action sets up a <em>rule</em> <em>T → pollMyService</em>.</p></li></ol><p>This procedure implements a polling-based trigger entirely using
-OpenWhisk and Nuvolaris actions, without any need for a separate
+OpenWhisk and OpenServerless actions, without any need for a separate
service.</p><h1 id=implementing-feeds-via-connections>Implementing Feeds via Connections</h1><p>The previous 2 architectural choices are simple and easy to implement.
However, if you want a high-performance feed, there is no substitute for
-persistent connections and long-polling or similar techniques.</p><p>Since OpenWhisk and Nuvolaris actions must be short-running, an action
+persistent connections and long-polling or similar techniques.</p><p>Since OpenWhisk and OpenServerless actions must be short-running, an action
cannot maintain a persistent connection to a third party . Instead, we
-must stand up a separate service (outside of OpenWhisk and Nuvolaris)
+must stand up a separate service (outside of OpenWhisk and OpenServerless)
that runs all the time. We call these <em>provider services</em>. A provider
service can maintain connections to third party event sources that
support long polling or other connection-based notifications.</p><p>The provider service should provide a REST API that allows the OpenWhisk
-and Nuvolaris <em>feed action</em> to control the feed. The provider service
-acts as a proxy between the event provider and OpenWhisk and Nuvolaris –
+and OpenServerless <em>feed action</em> to control the feed. The provider service
+acts as a proxy between the event provider and OpenWhisk and OpenServerless –
when it receives events from the third party, it sends them on to
-OpenWhisk and Nuvolaris by firing a trigger.</p><p>The connection-based architecture is the highest performance option, but
+OpenWhisk and OpenServerless by firing a trigger.</p><p>The connection-based architecture is the highest performance option, but
imposes more overhead on operations compared to the polling and hook
architectures.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/entities/index.html b/docs/reference/entities/index.html
index 3b6ddc7..10183eb 100644
--- a/docs/reference/entities/index.html
+++ b/docs/reference/entities/index.html
@@ -1,26 +1,26 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/entities/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/app [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Entities"><meta property="og:description" content="You can find more informations about Nuvolaris and OpenWhisk entities here:
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Entities"><meta property="og:description" content="You can find more informations about OpenServerless and OpenWhisk entities here:
Actions
Parameters
Annotations
Scheduler
Web Actions
Packages
-Feeds"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Entities"><meta itemprop=description content="You can find more informations about Nuvolaris and OpenWhisk entities here:
+Feeds"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Entities"><meta itemprop=description content="You can find more informations about OpenServerless and OpenWhisk entities here:
Actions
Parameters
Annotations
Scheduler
Web Actions
Packages
-Feeds"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="19"><meta name=twitter:card content="summary"><meta name=twitter:title content="Entities"><meta name=twitter:description content="You can find more informations about Nuvolaris and OpenWhisk entities here:
+Feeds"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="19"><meta name=twitter:card content="summary"><meta name=twitter:title content="Entities"><meta name=twitter:description content="You can find more informations about OpenServerless and OpenWhisk entities here:
Actions
Parameters
Annotations
Scheduler
Web Actions
Packages
-Feeds"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="conta [...]
+Feeds"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="conta [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -105,9 +105,9 @@ Feeds"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcae
<a href="https://github.com/apache/openserverless/issues/new/main/content/en/docs/reference/entities?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+secti [...]
<a href="https://github.com/apache/openserverless/issues/issues/new?title=Entities" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
-<a id=print href=/docs/reference/entities/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class="breadcrumb-item active" aria-current=page>Entities</li></ol></nav><div class=td-content><h1>Entities</h1 [...]
+<a id=print href=/docs/reference/entities/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class="breadcrumb-item active" aria-current=page>Entities</li></ol></nav><div class=td-content><h1>Entities</h1 [...]
here:</p><ul><li><p><a href=/docs/reference/entities/#actions.adoc>Actions</a></p></li><li><p><a href=/docs/reference/entities/#parameters.adoc>Parameters</a></p></li><li><p><a href=/docs/reference/entities/#annotations.adoc>Annotations</a></p></li><li><p><a href=/docs/reference/entities/#scheduler.adoc>Scheduler</a></p></li><li><p><a href=/docs/reference/entities/#webactions.adoc>Web Actions</a></p></li><li><p><a href=/docs/reference/entities/#packages.adoc>Packages</a></p></li><li><p>< [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/entities/packages/_print/index.html b/docs/reference/entities/packages/_print/index.html
index 0ecf723..85ed283 100644
--- a/docs/reference/entities/packages/_print/index.html
+++ b/docs/reference/entities/packages/_print/index.html
@@ -1,29 +1,29 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/entities/packages/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/packages/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon hre [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/packages/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Packages"><meta property="og:description" content="Using and creating packages In OpenWhisk and Nuvolaris, you can use packages to bundle together a set of related actions, and share them with others.
-A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Packages"><meta itemprop=description content="Using and creating packages In OpenWhisk an [...]
-A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1038"><meta name=twitter:card content="summary"><meta name=twitter:title content="Packages"><meta name= [...]
-A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200e [...]
-<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/packages/>Return to the regular view of this page</a>.</p></div><h1 class=title>Packages</h1><ul></ul><div class=content><h1 id=using-and-creating-packages>Using and creating packages</h1><p>In OpenWhisk and Nuvolaris, you can use packages to bundle together a
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/packages/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Packages"><meta property="og:description" content="Using and creating packages In OpenWhisk and OpenServerless, you can use packages to bundle together a set of related actions, and share them with others.
+A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Packages"><meta itemprop=description content="Using and creating packages In OpenWhisk and OpenServerle [...]
+A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1036"><meta name=twitter:card content="summary"><meta name=twitter:title content="Packages"><meta name=twitter:descri [...]
+A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel= [...]
+<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/packages/>Return to the regular view of this page</a>.</p></div><h1 class=title>Packages</h1><ul></ul><div class=content><h1 id=using-and-creating-packages>Using and creating packages</h1><p>In OpenWhisk and OpenServerless, you can use packages to bundle together a
set of related actions, and share them with others.</p><p>A package can include <em>actions</em> and <em>feeds</em>. - An action is a piece of
-code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant
+code that runs on OpenWhisk. For example, the Cloudant
package includes actions to read and write records to a Cloudant
database. - A feed is used to configure an external event source to fire
trigger events. For example, the Alarm package includes a feed that can
-fire a trigger at a specified frequency.</p><p>Every OpenWhisk and Nuvolaris entity, including packages, belongs in a
+fire a trigger at a specified frequency.</p><p>Every OpenWhisk and OpenServerless entity, including packages, belongs in a
<em>namespace</em>, and the fully qualified name of an entity is
<code>/namespaceName[/packageName]/entityName</code>. Refer to the <a href=/docs/reference/entities/packages/#reference.adoc#openwhisk-entities>naming
guidelines</a> for more information.</p><p>The following sections describe how to browse packages and use the
triggers and feeds in them. In addition, if you are interested in
contributing your own packages to the catalog, read the sections on
-creating and sharing packages.</p><h2 id=browsing-packages>Browsing packages</h2><p>Several packages are registered with OpenWhisk and Nuvolaris. You can
+creating and sharing packages.</p><h2 id=browsing-packages>Browsing packages</h2><p>Several packages are registered with OpenWhisk and OpenServerless. You can
get a list of packages in a namespace, list the entities in a package,
-and get a description of the individual entities in a package.</p><ol><li>Get a list of packages in the <code>/nuvolaris</code> namespace.</li></ol><pre><code>$ nuv package list /nuvolaris
+and get a description of the individual entities in a package.</p><ol><li>Get a list of packages in the <code>/nuvolaris</code> namespace.</li></ol><pre><code>$ ops package list /nuvolaris
packages
/nuvolaris/openai private
/nuvolaris/mastrogpt private
/nuvolaris/examples private
-</code></pre><ol><li>Get a list of entities in the <code>/nuvolaris/openai</code> package.</li></ol><pre><code>$ nuv package get --summary /nuvolaris/openai
+</code></pre><ol><li>Get a list of entities in the <code>/nuvolaris/openai</code> package.</li></ol><pre><code>$ ops package get --summary /nuvolaris/openai
package /nuvolaris/openai
(parameters: none defined)
action /nuvolaris/openai/models
@@ -38,7 +38,7 @@ means that they are immutable, and cannot be changed by the user. Any
entity listed under a package inherits specific bound parameters from
the package. To view the list of known parameters of an entity belonging
to a package, you will need to run a <code>get --summary</code> of the individual
-entity.</p><ol><li>Get a description of the <code>/nuvolaris/openai/chat</code> action.</li></ol><pre><code>$ nuv action get --summary /nuvolaris/openai/chat
+entity.</p><ol><li>Get a description of the <code>/nuvolaris/openai/chat</code> action.</li></ol><pre><code>$ ops action get --summary /nuvolaris/openai/chat
action /nuvolaris/openai/chat: Returns a result based on parameters OPENAI_API_HOST and OPENAI_API_KEY
(parameters: **OPENAI_API_HOST, **OPENAI_API_KEY)
</code></pre><p><em>NOTE</em>: Notice that the parameters listed for the action <code>read</code> were
@@ -48,33 +48,33 @@ listed under packages, run an individual get summary for the particular
entity.</p><h2 id=creating-a-package>Creating a package</h2><p>A package is used to organize a set of related actions and feeds. It
also allows for parameters to be shared across all entities in the
package.</p><p>To create a custom package with a simple action in it, try the following
-example:</p><ol><li>Create a package called <code>custom</code>.</li></ol><pre><code>$ nuv package create custom
+example:</p><ol><li>Create a package called <code>custom</code>.</li></ol><pre><code>$ ops package create custom
ok: created package custom
-</code></pre><ol><li>Get a summary of the package.</li></ol><pre><code>$ nuv package get --summary custom
+</code></pre><ol><li>Get a summary of the package.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom
(parameters: none defined)
</code></pre><p>Notice that the package is empty.</p><ol><li>Create a file called <code>identity.js</code> that contains the following
action code. This action returns all input parameters.</li></ol><pre><code>function main(args) { return args; }
-</code></pre><ol><li>Create an <code>identity</code> action in the <code>custom</code> package.</li></ol><pre><code>$ nuv action create custom/identity identity.js
+</code></pre><ol><li>Create an <code>identity</code> action in the <code>custom</code> package.</li></ol><pre><code>$ ops action create custom/identity identity.js
ok: created action custom/identity
</code></pre><p>Creating an action in a package requires that you prefix the action name
with a package name. Package nesting is not allowed. A package can
-contain only actions and can’t contain another package.</p><ol><li>Get a summary of the package again.</li></ol><pre><code>$ nuv package get --summary custom
+contain only actions and can’t contain another package.</p><ol><li>Get a summary of the package again.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom
(parameters: none defined)
action /myNamespace/custom/identity
(parameters: none defined)
-</code></pre><p>You can see the <code>custom/identity</code> action in your namespace now.</p><ol><li>Invoke the action in the package.</li></ol><pre><code>$ nuv action invoke --result custom/identity
+</code></pre><p>You can see the <code>custom/identity</code> action in your namespace now.</p><ol><li>Invoke the action in the package.</li></ol><pre><code>$ ops action invoke --result custom/identity
{}
</code></pre><p>You can set default parameters for all the entities in a package. You do
this by setting package-level parameters that are inherited by all
actions in the package. To see how this works, try the following
example:</p><ol><li>Update the <code>custom</code> package with two parameters: <code>city</code> and
-<code>country</code>.</li></ol><pre><code>$ nuv package update custom --param city Austin --param country USA
+<code>country</code>.</li></ol><pre><code>$ ops package update custom --param city Austin --param country USA
ok: updated package custom
</code></pre><ol><li>Display the parameters in the package and action, and see how the
<code>identity</code> action in the package inherits parameters from the
-package.</li></ol><pre><code>$ nuv package get custom
+package.</li></ol><pre><code>$ ops package get custom
ok: got package custom
...
"parameters": [
@@ -89,7 +89,7 @@ ok: got package custom
]
...
-$ nuv action get custom/identity
+$ ops action get custom/identity
ok: got action custom/identity
...
"parameters": [
@@ -104,27 +104,27 @@ ok: got action custom/identity
]
...
</code></pre><ol><li>Invoke the identity action without any parameters to verify that the
-action indeed inherits the parameters.</li></ol><pre><code>$ nuv action invoke --result custom/identity
+action indeed inherits the parameters.</li></ol><pre><code>$ ops action invoke --result custom/identity
{
"city": "Austin",
"country": "USA"
}
</code></pre><ol><li>Invoke the identity action with some parameters. Invocation
parameters are merged with the package parameters; the invocation
-parameters override the package parameters.</li></ol><pre><code>$ nuv action invoke --result custom/identity --param city Dallas --param state Texas
+parameters override the package parameters.</li></ol><pre><code>$ ops action invoke --result custom/identity --param city Dallas --param state Texas
{
"city": "Dallas",
"country": "USA",
"state": "Texas"
}
</code></pre><h2 id=sharing-a-package>Sharing a package</h2><p>After the actions and feeds that comprise a package are debugged and
-tested, the package can be shared with all OpenWhisk and Nuvolaris
+tested, the package can be shared with all OpenWhisk and OpenServerless
users. Sharing the package makes it possible for the users to bind the
package, invoke actions in the package, and author OpenWhisk and
-Nuvolaris rules and sequence actions.</p><ol><li>Share the package with all users:</li></ol><pre><code>$ nuv package update custom --shared yes
+OpenServerless rules and sequence actions.</p><ol><li>Share the package with all users:</li></ol><pre><code>$ ops package update custom --shared yes
ok: updated package custom
</code></pre><ol><li>Display the <code>publish</code> property of the package to verify that it is
-now true.</li></ol><pre><code>$ nuv package get custom
+now true.</li></ol><pre><code>$ ops package get custom
ok: got package custom
...
"publish": true,
@@ -134,7 +134,7 @@ package or directly invoking an action in it. Other users must know the
fully qualified names of the package to bind it or invoke actions in it.
Actions and feeds within a shared package are <em>public</em>. If the package
is private, then all of its contents are also private.</p><ol><li>Get a description of the package to show the fully qualified names
-of the package and action.</li></ol><pre><code>$ nuv package get --summary custom
+of the package and action.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom: Returns a result based on parameters city and country
(parameters: *city, *country)
action /myNamespace/custom/identity
diff --git a/docs/reference/entities/packages/index.html b/docs/reference/entities/packages/index.html
index 0b351db..578014a 100644
--- a/docs/reference/entities/packages/index.html
+++ b/docs/reference/entities/packages/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/entities/packages/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/packages/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/packages/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Packages"><meta property="og:description" content="Using and creating packages In OpenWhisk and Nuvolaris, you can use packages to bundle together a set of related actions, and share them with others.
-A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Packages"><meta itemprop=description content="Using and creating packages In OpenWhisk an [...]
-A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1038"><meta name=twitter:card content="summary"><meta name=twitter:title content="Packages"><meta name= [...]
-A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200e [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/packages/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Packages"><meta property="og:description" content="Using and creating packages In OpenWhisk and OpenServerless, you can use packages to bundle together a set of related actions, and share them with others.
+A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Packages"><meta itemprop=description content="Using and creating packages In OpenWhisk and OpenServerle [...]
+A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1036"><meta name=twitter:card content="summary"><meta name=twitter:title content="Packages"><meta name=twitter:descri [...]
+A package can include actions and feeds. - An action is a piece of code that runs on OpenWhisk. For example, the Cloudant package includes actions to read and write records to a Cloudant database. - A feed is used to configure an external event source to fire trigger events."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel= [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -87,27 +87,27 @@ A package can include actions and feeds. - An action is a piece of code that run
<a href="https://github.com/apache/openserverless/issues/new/main/content/en/docs/reference/entities/packages?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter [...]
<a href="https://github.com/apache/openserverless/issues/issues/new?title=Packages" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
-<a id=print href=/docs/reference/entities/packages/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#browsing-packages>Browsing packages</a></li><li><a href=#creating-a-package>Creating a package</a></li><li><a href=#sharing-a-package>Sharing a package</a></li></ul></nav></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=brea [...]
+<a id=print href=/docs/reference/entities/packages/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#browsing-packages>Browsing packages</a></li><li><a href=#creating-a-package>Creating a package</a></li><li><a href=#sharing-a-package>Sharing a package</a></li></ul></nav></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=brea [...]
set of related actions, and share them with others.</p><p>A package can include <em>actions</em> and <em>feeds</em>. - An action is a piece of
-code that runs on OpenWhisk and Nuvolaris. For example, the Cloudant
+code that runs on OpenWhisk. For example, the Cloudant
package includes actions to read and write records to a Cloudant
database. - A feed is used to configure an external event source to fire
trigger events. For example, the Alarm package includes a feed that can
-fire a trigger at a specified frequency.</p><p>Every OpenWhisk and Nuvolaris entity, including packages, belongs in a
+fire a trigger at a specified frequency.</p><p>Every OpenWhisk and OpenServerless entity, including packages, belongs in a
<em>namespace</em>, and the fully qualified name of an entity is
<code>/namespaceName[/packageName]/entityName</code>. Refer to the <a href=/docs/reference/entities/packages/#reference.adoc#openwhisk-entities>naming
guidelines</a> for more information.</p><p>The following sections describe how to browse packages and use the
triggers and feeds in them. In addition, if you are interested in
contributing your own packages to the catalog, read the sections on
-creating and sharing packages.</p><h2 id=browsing-packages>Browsing packages</h2><p>Several packages are registered with OpenWhisk and Nuvolaris. You can
+creating and sharing packages.</p><h2 id=browsing-packages>Browsing packages</h2><p>Several packages are registered with OpenWhisk and OpenServerless. You can
get a list of packages in a namespace, list the entities in a package,
-and get a description of the individual entities in a package.</p><ol><li>Get a list of packages in the <code>/nuvolaris</code> namespace.</li></ol><pre><code>$ nuv package list /nuvolaris
+and get a description of the individual entities in a package.</p><ol><li>Get a list of packages in the <code>/nuvolaris</code> namespace.</li></ol><pre><code>$ ops package list /nuvolaris
packages
/nuvolaris/openai private
/nuvolaris/mastrogpt private
/nuvolaris/examples private
-</code></pre><ol><li>Get a list of entities in the <code>/nuvolaris/openai</code> package.</li></ol><pre><code>$ nuv package get --summary /nuvolaris/openai
+</code></pre><ol><li>Get a list of entities in the <code>/nuvolaris/openai</code> package.</li></ol><pre><code>$ ops package get --summary /nuvolaris/openai
package /nuvolaris/openai
(parameters: none defined)
action /nuvolaris/openai/models
@@ -122,7 +122,7 @@ means that they are immutable, and cannot be changed by the user. Any
entity listed under a package inherits specific bound parameters from
the package. To view the list of known parameters of an entity belonging
to a package, you will need to run a <code>get --summary</code> of the individual
-entity.</p><ol><li>Get a description of the <code>/nuvolaris/openai/chat</code> action.</li></ol><pre><code>$ nuv action get --summary /nuvolaris/openai/chat
+entity.</p><ol><li>Get a description of the <code>/nuvolaris/openai/chat</code> action.</li></ol><pre><code>$ ops action get --summary /nuvolaris/openai/chat
action /nuvolaris/openai/chat: Returns a result based on parameters OPENAI_API_HOST and OPENAI_API_KEY
(parameters: **OPENAI_API_HOST, **OPENAI_API_KEY)
</code></pre><p><em>NOTE</em>: Notice that the parameters listed for the action <code>read</code> were
@@ -132,33 +132,33 @@ listed under packages, run an individual get summary for the particular
entity.</p><h2 id=creating-a-package>Creating a package</h2><p>A package is used to organize a set of related actions and feeds. It
also allows for parameters to be shared across all entities in the
package.</p><p>To create a custom package with a simple action in it, try the following
-example:</p><ol><li>Create a package called <code>custom</code>.</li></ol><pre><code>$ nuv package create custom
+example:</p><ol><li>Create a package called <code>custom</code>.</li></ol><pre><code>$ ops package create custom
ok: created package custom
-</code></pre><ol><li>Get a summary of the package.</li></ol><pre><code>$ nuv package get --summary custom
+</code></pre><ol><li>Get a summary of the package.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom
(parameters: none defined)
</code></pre><p>Notice that the package is empty.</p><ol><li>Create a file called <code>identity.js</code> that contains the following
action code. This action returns all input parameters.</li></ol><pre><code>function main(args) { return args; }
-</code></pre><ol><li>Create an <code>identity</code> action in the <code>custom</code> package.</li></ol><pre><code>$ nuv action create custom/identity identity.js
+</code></pre><ol><li>Create an <code>identity</code> action in the <code>custom</code> package.</li></ol><pre><code>$ ops action create custom/identity identity.js
ok: created action custom/identity
</code></pre><p>Creating an action in a package requires that you prefix the action name
with a package name. Package nesting is not allowed. A package can
-contain only actions and can’t contain another package.</p><ol><li>Get a summary of the package again.</li></ol><pre><code>$ nuv package get --summary custom
+contain only actions and can’t contain another package.</p><ol><li>Get a summary of the package again.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom
(parameters: none defined)
action /myNamespace/custom/identity
(parameters: none defined)
-</code></pre><p>You can see the <code>custom/identity</code> action in your namespace now.</p><ol><li>Invoke the action in the package.</li></ol><pre><code>$ nuv action invoke --result custom/identity
+</code></pre><p>You can see the <code>custom/identity</code> action in your namespace now.</p><ol><li>Invoke the action in the package.</li></ol><pre><code>$ ops action invoke --result custom/identity
{}
</code></pre><p>You can set default parameters for all the entities in a package. You do
this by setting package-level parameters that are inherited by all
actions in the package. To see how this works, try the following
example:</p><ol><li>Update the <code>custom</code> package with two parameters: <code>city</code> and
-<code>country</code>.</li></ol><pre><code>$ nuv package update custom --param city Austin --param country USA
+<code>country</code>.</li></ol><pre><code>$ ops package update custom --param city Austin --param country USA
ok: updated package custom
</code></pre><ol><li>Display the parameters in the package and action, and see how the
<code>identity</code> action in the package inherits parameters from the
-package.</li></ol><pre><code>$ nuv package get custom
+package.</li></ol><pre><code>$ ops package get custom
ok: got package custom
...
"parameters": [
@@ -173,7 +173,7 @@ ok: got package custom
]
...
-$ nuv action get custom/identity
+$ ops action get custom/identity
ok: got action custom/identity
...
"parameters": [
@@ -188,27 +188,27 @@ ok: got action custom/identity
]
...
</code></pre><ol><li>Invoke the identity action without any parameters to verify that the
-action indeed inherits the parameters.</li></ol><pre><code>$ nuv action invoke --result custom/identity
+action indeed inherits the parameters.</li></ol><pre><code>$ ops action invoke --result custom/identity
{
"city": "Austin",
"country": "USA"
}
</code></pre><ol><li>Invoke the identity action with some parameters. Invocation
parameters are merged with the package parameters; the invocation
-parameters override the package parameters.</li></ol><pre><code>$ nuv action invoke --result custom/identity --param city Dallas --param state Texas
+parameters override the package parameters.</li></ol><pre><code>$ ops action invoke --result custom/identity --param city Dallas --param state Texas
{
"city": "Dallas",
"country": "USA",
"state": "Texas"
}
</code></pre><h2 id=sharing-a-package>Sharing a package</h2><p>After the actions and feeds that comprise a package are debugged and
-tested, the package can be shared with all OpenWhisk and Nuvolaris
+tested, the package can be shared with all OpenWhisk and OpenServerless
users. Sharing the package makes it possible for the users to bind the
package, invoke actions in the package, and author OpenWhisk and
-Nuvolaris rules and sequence actions.</p><ol><li>Share the package with all users:</li></ol><pre><code>$ nuv package update custom --shared yes
+OpenServerless rules and sequence actions.</p><ol><li>Share the package with all users:</li></ol><pre><code>$ ops package update custom --shared yes
ok: updated package custom
</code></pre><ol><li>Display the <code>publish</code> property of the package to verify that it is
-now true.</li></ol><pre><code>$ nuv package get custom
+now true.</li></ol><pre><code>$ ops package get custom
ok: got package custom
...
"publish": true,
@@ -218,14 +218,14 @@ package or directly invoking an action in it. Other users must know the
fully qualified names of the package to bind it or invoke actions in it.
Actions and feeds within a shared package are <em>public</em>. If the package
is private, then all of its contents are also private.</p><ol><li>Get a description of the package to show the fully qualified names
-of the package and action.</li></ol><pre><code>$ nuv package get --summary custom
+of the package and action.</li></ol><pre><code>$ ops package get --summary custom
package /myNamespace/custom: Returns a result based on parameters city and country
(parameters: *city, *country)
action /myNamespace/custom/identity
(parameters: none defined)
</code></pre><p>In the previous example, you’re working with the <code>myNamespace</code>
namespace, and this namespace appears in the fully qualified name.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/entities/parameters/_print/index.html b/docs/reference/entities/parameters/_print/index.html
index 8ce2e0a..2d8b7cb 100644
--- a/docs/reference/entities/parameters/_print/index.html
+++ b/docs/reference/entities/parameters/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/entities/parameters/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/parameters/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/parameters/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Parameters"><meta property="og:description" content="When working with serverless actions, data is supplied by adding parameters to the actions; these are in the parameter declared as an argument to the main serverless function. All data arrives this way and the values [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/parameters/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Parameters"><meta property="og:description" content="When working with serverless actions, data is supplied by adding parameters to the actions; these are in the parameter declared as an argument to the main serverless function. All data arrives this way and the values [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/parameters/>Return to the regular view of this page</a>.</p></div><h1 class=title>Parameters</h1><ul></ul><div class=content><p>When working with serverless actions, data is supplied by adding
parameters to the actions; these are in the parameter declared as an
argument to the main serverless function. All data arrives this way and
@@ -21,11 +21,11 @@ with the following content:</li></ol><pre><code>function main(params) {
}
</code></pre><p>The input parameters are passed as a JSON object parameter to the <code>main</code>
function. Notice how the <code>name</code> and <code>place</code> parameters are retrieved
-from the <code>params</code> object in this example.</p><ol><li>Update the action so it is ready to use:</li></ol><pre><code>nuv action update hello hello.js
+from the <code>params</code> object in this example.</p><ol><li>Update the action so it is ready to use:</li></ol><pre><code>ops action update hello hello.js
</code></pre><ol><li>Parameters can be provided explicitly on the command-line, or by
supplying a file containing the desired parameters</li></ol><p>To pass parameters directly through the command-line, supply a key/value
pair to the <code>--param</code> flag:
-<code>nuv action invoke --result hello --param name Dorothy --param place Kansas</code></p><p>This produces the result:</p><pre><code>{
+<code>ops action invoke --result hello --param name Dorothy --param place Kansas</code></p><p>This produces the result:</p><pre><code>{
"payload": "Hello, Dorothy from Kansas"
}
</code></pre><p>Notice the use of the <code>--result</code> option: it implies a blocking
@@ -38,7 +38,7 @@ structured object. For example, if we update our hello action to:</p><pre><code>
}
</code></pre><p>Now the action expects a single <code>person</code> parameter to have fields <code>name</code>
and <code>place</code>. If we invoke the action with a single <code>person</code> parameter
-that is valid JSON:</p><pre><code>nuv action invoke --result hello -p person '{"name": "Dorothy", "place": "Kansas"}'
+that is valid JSON:</p><pre><code>ops action invoke --result hello -p person '{"name": "Dorothy", "place": "Kansas"}'
</code></pre><p>The result is the same because the CLI automatically parses the <code>person</code>
parameter value into the structured object that the action now expects:
<code>json { "payload": "Hello, Dorothy from Kansas" }</code></p><h1 id=setting-default-parameters-on-an-action>Setting default parameters on an action</h1><p>Actions can be invoked with multiple named parameters. Recall that the
@@ -49,8 +49,8 @@ parameter so that the action defaults to the place “Kansas”:</p><ol><li>Upda
values, or by passing a file that contains the parameters to
<code>--param-file</code> (for examples of using files, see the section on
<a href=/docs/reference/entities/parameters/##working-with-parameter-files>working with parameter files</a>).</li></ol><p>To specify default parameters explicitly on the command-line, provide a
-key/value pair to the <code>param</code> flag:</p><pre><code>nuv action update hello --param place Kansas
-</code></pre><ol><li>Invoke the action, passing only the <code>name</code> parameter this time.</li></ol><pre><code>nuv action invoke --result hello --param name Dorothy
+key/value pair to the <code>param</code> flag:</p><pre><code>ops action update hello --param place Kansas
+</code></pre><ol><li>Invoke the action, passing only the <code>name</code> parameter this time.</li></ol><pre><code>ops action invoke --result hello --param name Dorothy
{
"payload": "Hello, Dorothy from Kansas"
@@ -58,7 +58,7 @@ key/value pair to the <code>param</code> flag:</p><pre><code>nuv action update h
</code></pre><p>Notice that you did not need to specify the <code>place</code> parameter when you
invoked the action. Bound parameters can still be overwritten by
specifying the parameter value at invocation time.</p><ol><li>Invoke the action, passing both <code>name</code> and <code>place</code> values, and
-observe the output:</li></ol><pre><code>nuv action invoke --result hello --param name Dorothy --param place "Washington, DC"
+observe the output:</li></ol><pre><code>ops action invoke --result hello --param name Dorothy --param place "Washington, DC"
{
"payload": "Hello, Dorothy from Washington, DC"
@@ -67,13 +67,13 @@ observe the output:</li></ol><pre><code>nuv action invoke --result hello --param
is overridden by a parameter that was supplied when invoking the action.</p><h1 id=setting-default-parameters-on-a-package>Setting default parameters on a package</h1><p>Parameters can be set at the package level, and these will serve as
default parameters for actions unless:</p><ul><li><p>The action itself has a default parameter.</p></li><li><p>The action has a parameter supplied at invoke time, which will
always be the “winner” where more than one parameter is available.</p></li></ul><p>The following example sets a default parameter of <code>name</code> on the <code>MyApp</code>
-package and shows an action making use of it.</p><ol><li>Create a package with a parameter set:</li></ol><pre><code>nuv package update MyApp --param name World
+package and shows an action making use of it.</p><ol><li>Create a package with a parameter set:</li></ol><pre><code>ops package update MyApp --param name World
</code></pre><ol><li>Create an action in this package:</li></ol><pre><code> function main(params) {
return {payload: "Hello, " + params.name};
}
-nuv action update MyApp/hello hello.js
-</code></pre><ol><li>Invoke the action, and observe the default package parameter in use:</li></ol><pre><code>nuv action invoke --result MyApp/hello
+ops action update MyApp/hello hello.js
+</code></pre><ol><li>Invoke the action, and observe the default package parameter in use:</li></ol><pre><code>ops action invoke --result MyApp/hello
{
"payload": "Hello, World"
@@ -85,14 +85,14 @@ creating/updating them, and when invoking actions.</p><ol><li>As an example, con
earlier. Using <code>hello.js</code> with this content:</li></ol><pre><code>function main(params) {
return {payload: 'Hello, ' + params.name + ' from ' + params.place};
}
-</code></pre><ol><li>Update the action with the updated contents of <code>hello.js</code>:</li></ol><pre><code>nuv action update hello hello.js
+</code></pre><ol><li>Update the action with the updated contents of <code>hello.js</code>:</li></ol><pre><code>ops action update hello hello.js
</code></pre><ol><li>Create a parameter file called <code>parameters.json</code> containing
JSON-formatted parameters:</li></ol><pre><code>{
"name": "Dorothy",
"place": "Kansas"
}
</code></pre><ol><li>Use the <code>parameters.json</code> filename when invoking the action, and
-observe the output</li></ol><pre><code>nuv action invoke --result hello --param-file parameters.json
+observe the output</li></ol><pre><code>ops action invoke --result hello --param-file parameters.json
{
"payload": "Hello, Dorothy from Kansas"
diff --git a/docs/reference/entities/parameters/index.html b/docs/reference/entities/parameters/index.html
index a09069d..594746a 100644
--- a/docs/reference/entities/parameters/index.html
+++ b/docs/reference/entities/parameters/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/entities/parameters/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/parameters/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-i [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/parameters/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Parameters"><meta property="og:description" content="When working with serverless actions, data is supplied by adding parameters to the actions; these are in the parameter declared as an argument to the main serverless function. All data arrives this way and the values [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/parameters/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Parameters"><meta property="og:description" content="When working with serverless actions, data is supplied by adding parameters to the actions; these are in the parameter declared as an argument to the main serverless function. All data arrives this way and the values [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -105,11 +105,11 @@ with the following content:</li></ol><pre><code>function main(params) {
}
</code></pre><p>The input parameters are passed as a JSON object parameter to the <code>main</code>
function. Notice how the <code>name</code> and <code>place</code> parameters are retrieved
-from the <code>params</code> object in this example.</p><ol><li>Update the action so it is ready to use:</li></ol><pre><code>nuv action update hello hello.js
+from the <code>params</code> object in this example.</p><ol><li>Update the action so it is ready to use:</li></ol><pre><code>ops action update hello hello.js
</code></pre><ol><li>Parameters can be provided explicitly on the command-line, or by
supplying a file containing the desired parameters</li></ol><p>To pass parameters directly through the command-line, supply a key/value
pair to the <code>--param</code> flag:
-<code>nuv action invoke --result hello --param name Dorothy --param place Kansas</code></p><p>This produces the result:</p><pre><code>{
+<code>ops action invoke --result hello --param name Dorothy --param place Kansas</code></p><p>This produces the result:</p><pre><code>{
"payload": "Hello, Dorothy from Kansas"
}
</code></pre><p>Notice the use of the <code>--result</code> option: it implies a blocking
@@ -122,7 +122,7 @@ structured object. For example, if we update our hello action to:</p><pre><code>
}
</code></pre><p>Now the action expects a single <code>person</code> parameter to have fields <code>name</code>
and <code>place</code>. If we invoke the action with a single <code>person</code> parameter
-that is valid JSON:</p><pre><code>nuv action invoke --result hello -p person '{"name": "Dorothy", "place": "Kansas"}'
+that is valid JSON:</p><pre><code>ops action invoke --result hello -p person '{"name": "Dorothy", "place": "Kansas"}'
</code></pre><p>The result is the same because the CLI automatically parses the <code>person</code>
parameter value into the structured object that the action now expects:
<code>json { "payload": "Hello, Dorothy from Kansas" }</code></p><h1 id=setting-default-parameters-on-an-action>Setting default parameters on an action</h1><p>Actions can be invoked with multiple named parameters. Recall that the
@@ -133,8 +133,8 @@ parameter so that the action defaults to the place “Kansas”:</p><ol><li>Upda
values, or by passing a file that contains the parameters to
<code>--param-file</code> (for examples of using files, see the section on
<a href=/docs/reference/entities/parameters/##working-with-parameter-files>working with parameter files</a>).</li></ol><p>To specify default parameters explicitly on the command-line, provide a
-key/value pair to the <code>param</code> flag:</p><pre><code>nuv action update hello --param place Kansas
-</code></pre><ol><li>Invoke the action, passing only the <code>name</code> parameter this time.</li></ol><pre><code>nuv action invoke --result hello --param name Dorothy
+key/value pair to the <code>param</code> flag:</p><pre><code>ops action update hello --param place Kansas
+</code></pre><ol><li>Invoke the action, passing only the <code>name</code> parameter this time.</li></ol><pre><code>ops action invoke --result hello --param name Dorothy
{
"payload": "Hello, Dorothy from Kansas"
@@ -142,7 +142,7 @@ key/value pair to the <code>param</code> flag:</p><pre><code>nuv action update h
</code></pre><p>Notice that you did not need to specify the <code>place</code> parameter when you
invoked the action. Bound parameters can still be overwritten by
specifying the parameter value at invocation time.</p><ol><li>Invoke the action, passing both <code>name</code> and <code>place</code> values, and
-observe the output:</li></ol><pre><code>nuv action invoke --result hello --param name Dorothy --param place "Washington, DC"
+observe the output:</li></ol><pre><code>ops action invoke --result hello --param name Dorothy --param place "Washington, DC"
{
"payload": "Hello, Dorothy from Washington, DC"
@@ -151,13 +151,13 @@ observe the output:</li></ol><pre><code>nuv action invoke --result hello --param
is overridden by a parameter that was supplied when invoking the action.</p><h1 id=setting-default-parameters-on-a-package>Setting default parameters on a package</h1><p>Parameters can be set at the package level, and these will serve as
default parameters for actions unless:</p><ul><li><p>The action itself has a default parameter.</p></li><li><p>The action has a parameter supplied at invoke time, which will
always be the “winner” where more than one parameter is available.</p></li></ul><p>The following example sets a default parameter of <code>name</code> on the <code>MyApp</code>
-package and shows an action making use of it.</p><ol><li>Create a package with a parameter set:</li></ol><pre><code>nuv package update MyApp --param name World
+package and shows an action making use of it.</p><ol><li>Create a package with a parameter set:</li></ol><pre><code>ops package update MyApp --param name World
</code></pre><ol><li>Create an action in this package:</li></ol><pre><code> function main(params) {
return {payload: "Hello, " + params.name};
}
-nuv action update MyApp/hello hello.js
-</code></pre><ol><li>Invoke the action, and observe the default package parameter in use:</li></ol><pre><code>nuv action invoke --result MyApp/hello
+ops action update MyApp/hello hello.js
+</code></pre><ol><li>Invoke the action, and observe the default package parameter in use:</li></ol><pre><code>ops action invoke --result MyApp/hello
{
"payload": "Hello, World"
@@ -169,20 +169,20 @@ creating/updating them, and when invoking actions.</p><ol><li>As an example, con
earlier. Using <code>hello.js</code> with this content:</li></ol><pre><code>function main(params) {
return {payload: 'Hello, ' + params.name + ' from ' + params.place};
}
-</code></pre><ol><li>Update the action with the updated contents of <code>hello.js</code>:</li></ol><pre><code>nuv action update hello hello.js
+</code></pre><ol><li>Update the action with the updated contents of <code>hello.js</code>:</li></ol><pre><code>ops action update hello hello.js
</code></pre><ol><li>Create a parameter file called <code>parameters.json</code> containing
JSON-formatted parameters:</li></ol><pre><code>{
"name": "Dorothy",
"place": "Kansas"
}
</code></pre><ol><li>Use the <code>parameters.json</code> filename when invoking the action, and
-observe the output</li></ol><pre><code>nuv action invoke --result hello --param-file parameters.json
+observe the output</li></ol><pre><code>ops action invoke --result hello --param-file parameters.json
{
"payload": "Hello, Dorothy from Kansas"
}
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/entities/webactions/_print/index.html b/docs/reference/entities/webactions/_print/index.html
index a34707b..f62587a 100644
--- a/docs/reference/entities/webactions/_print/index.html
+++ b/docs/reference/entities/webactions/_print/index.html
@@ -1,12 +1,12 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/entities/webactions/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/webactions/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/webactions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Web Actions"><meta property="og:description" content="Web Actions Web actions are OpenWhisk and Nuvolaris actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which your web application can access anonymously [...]
-Web action activations will be associated with the user that created the action."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Web Actions"><meta itemprop=description content="Web Actions Web actions are OpenWhisk and Nuvolaris actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which your web application can access anonymously without requiring an OpenWhisk an [...]
-Web action activations will be associated with the user that created the action."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="2841"><meta name=twitter:card content="summary"><meta name=twitter:title content="Web Actions"><meta name=twitter:description content="Web Actions Web actions are OpenWhisk and Nuvolaris actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which your [...]
-Web action activations will be associated with the user that created the action."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header>< [...]
-<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/webactions/>Return to the regular view of this page</a>.</p></div><h1 class=title>Web Actions</h1><ul></ul><div class=content><h1 id=web-actions>Web Actions</h1><p>Web actions are OpenWhisk and Nuvolaris actions annotated to quickly
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/webactions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Web Actions"><meta property="og:description" content="Web Actions Web actions are OpenWhisk and OpenServerless actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which your web application can access anonym [...]
+Web action activations will be associated with the user that created the action."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Web Actions"><meta itemprop=description content="Web Actions Web actions are OpenWhisk and OpenServerless actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which your web application can access anonymously without requiring an OpenWhi [...]
+Web action activations will be associated with the user that created the action."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="2841"><meta name=twitter:card content="summary"><meta name=twitter:title content="Web Actions"><meta name=twitter:description content="Web Actions Web actions are OpenWhisk and OpenServerless actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which [...]
+Web action activations will be associated with the user that created the action."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header>< [...]
+<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/entities/webactions/>Return to the regular view of this page</a>.</p></div><h1 class=title>Web Actions</h1><ul></ul><div class=content><h1 id=web-actions>Web Actions</h1><p>Web actions are OpenWhisk and OpenServerless actions annotated to quickly
enable you to build web based applications. This allows you to program
backend logic which your web application can access anonymously without
-requiring an OpenWhisk and Nuvolaris authentication key. It is up to the
+requiring an OpenWhisk and OpenServerless authentication key. It is up to the
action developer to implement their own desired authentication and
authorization (i.e. OAuth flow).</p><p>Web action activations will be associated with the user that created the
action. This actions defers the cost of an action activation from the
@@ -20,13 +20,13 @@ function main({name}) {
}
</code></pre><p>You may create a <em>web action</em> <code>hello</code> in the package <code>demo</code> for the
namespace <code>guest</code> using the CLI’s <code>--web</code> flag with a value of <code>true</code> or
-<code>yes</code>:</p><pre><code>$ nuv package create demo
+<code>yes</code>:</p><pre><code>$ ops package create demo
ok: created package demo
-$ nuv action create demo/hello hello.js --web true
+$ ops action create demo/hello hello.js --web true
ok: created action demo/hello
-$ nuv action get demo/hello --url
+$ ops action get demo/hello --url
ok: got action hello
https://${APIHOST}/api/v1/web/guest/demo/hello
</code></pre><p>Using the <code>--web</code> flag with a value of <code>true</code> or <code>yes</code> allows an action
@@ -85,13 +85,13 @@ the body may be any allowed JSON value. The default content-type may be
omitted from the headers.</p><p>It is important to be aware of the <a href=/docs/reference/entities/webactions/#reference.adoc>response size
limit</a> for actions since a response that exceeds the
predefined system limits will fail. Large objects should not be sent
-inline through OpenWhisk and Nuvolaris, but instead deferred to an
-object store, for example.</p><h2 id=handling-http-requests-with-actions>Handling HTTP requests with actions</h2><p>An OpenWhisk and Nuvolaris action that is not a web action requires both
+inline through OpenWhisk and OpenServerless, but instead deferred to an
+object store, for example.</p><h2 id=handling-http-requests-with-actions>Handling HTTP requests with actions</h2><p>An OpenWhisk and OpenServerless action that is not a web action requires both
authentication and must respond with a JSON object. In contrast, web
actions may be invoked without authentication, and may be used to
implement HTTP handlers that respond with <em>headers</em>, <em>statusCode</em>, and
<em>body</em> content of different types. The web action must still return a
-JSON object, but the OpenWhisk and Nuvolaris system (namely the
+JSON object, but the OpenWhisk and OpenServerless system (namely the
<code>controller</code>) will treat a web action differently if its result includes
one or more of the following as top level JSON properties:</p><ol><li><p><code>headers</code>: a JSON object where the keys are header-names and the
values are string, number, or boolean values for those headers
@@ -112,7 +112,7 @@ and decode the string using a base64 decoder as needed. Should the body
fail to decoded correctly, an error is returned to the caller.</p><h2 id=http-context>HTTP Context</h2><p>All web actions, when invoked, receives additional HTTP request details
as parameters to the action input argument. They are:</p><ol><li><p><code>__ow_method</code> (type: string): the HTTP method of the request.</p></li><li><p><code>__ow_headers</code> (type: map string to string): the request headers.</p></li><li><p><code>__ow_path</code> (type: string): the unmatched path of the request
(matching stops after consuming the action extension).</p></li><li><p><code>__ow_user</code> (type: string): the namespace identifying the OpenWhisk
-and Nuvolaris authenticated subject.</p></li><li><p><code>__ow_body</code> (type: string): the request body entity, as a base64
+and OpenServerless authenticated subject.</p></li><li><p><code>__ow_body</code> (type: string): the request body entity, as a base64
encoded string when content is binary or JSON object/array, or plain
string otherwise.</p></li><li><p><code>__ow_query</code> (type: string): the query parameters from the request
as an unparsed string.</p></li></ol><p>A request may not override any of the named <code>__ow_</code> parameters above;
@@ -239,7 +239,7 @@ shown above.</p><pre><code>$ curl https://${APIHOST}/api/v1/web/guest/demo/hello
the absence of an extension assumes <code>.http</code> as the default. The fully
qualified name of the action must include its package name, which is
<code>default</code> if the action is not in a named package.</p><h2 id=protected-parameters>Protected parameters</h2><p>Action parameters are protected and treated as immutable. Parameters are
-automatically finalized when enabling web actions.</p><pre><code>$ nuv action create /guest/demo/hello hello.js \
+automatically finalized when enabling web actions.</p><pre><code>$ ops action create /guest/demo/hello hello.js \
--parameter name Jane \
--web true
</code></pre><p>The result of these changes is that the <code>name</code> is bound to <code>Jane</code> and
@@ -251,7 +251,7 @@ annotation</a> to
secure the web action. When the <code>require-whisk-auth</code> annotation is set
to <code>true</code>, the action will authenticate the invocation request’s Basic
Authorization credentials to confirm they represent a valid OpenWhisk
-and Nuvolaris identity. When set to a number or a case-sensitive string,
+and OpenServerless identity. When set to a number or a case-sensitive string,
the action’s invocation request must include a <code>X-Require-Whisk-Auth</code>
header having this same value. Secured web actions will return a
<code>Not Authorized</code> when credential validation fails.</p><p>Alternatively, use the <code>--web-secure</code> flag to automatically set the
@@ -259,15 +259,15 @@ header having this same value. Secured web actions will return a
generated as the <code>require-whisk-auth</code> annotation value. When set to
<code>false</code> the <code>require-whisk-auth</code> annotation is removed. When set to any
other value, that value is used as the <code>require-whisk-auth</code> annotation
-value.</p><pre><code>nuv action update /guest/demo/hello hello.js --web true --web-secure my-secret
-</code></pre><p>or</p><pre><code>nuv action update /guest/demo/hello hello.js --web true -a require-whisk-auth my-secret
+value.</p><pre><code>ops action update /guest/demo/hello hello.js --web true --web-secure my-secret
+</code></pre><p>or</p><pre><code>ops action update /guest/demo/hello hello.js --web true -a require-whisk-auth my-secret
curl https://${APIHOST}/api/v1/web/guest/demo/hello.json?name=Jane -X GET -H "X-Require-Whisk-Auth: my-secret"
</code></pre><p>It’s important to note that the owner of the web action owns all of the
web action’s activations records and will incur the cost of running the
action in the system regardless of how the action was invoked.</p><h2 id=disabling-web-actions>Disabling web actions</h2><p>To disable a web action from being invoked via web API
(<code>https://APIHOST/api/v1/web/</code>), pass a value of <code>false</code> or <code>no</code> to the
-<code>--web</code> flag while updating an action with the CLI.</p><pre><code>nuv action update /guest/demo/hello hello.js --web false
+<code>--web</code> flag while updating an action with the CLI.</p><pre><code>ops action update /guest/demo/hello hello.js --web false
</code></pre><h2 id=raw-http-handling>Raw HTTP handling</h2><p>A web action may elect to interpret and process an incoming HTTP body
directly, without the promotion of a JSON object to first class
properties available to the action input (e.g., <code>args.name</code> vs parsing
@@ -292,9 +292,9 @@ parameters and as JSON value in the HTTP request body:</p><pre><code>$ curl http
}
}
</code></pre><h3 id=enabling-raw-http-handling>Enabling raw HTTP handling</h3><p>Raw HTTP web actions are enabled via the <code>--web</code> flag using a value of
-<code>raw</code>.</p><pre><code>nuv action create /guest/demo/hello hello.js --web raw
+<code>raw</code>.</p><pre><code>ops action create /guest/demo/hello hello.js --web raw
</code></pre><h3 id=disabling-raw-http-handling>Disabling raw HTTP handling</h3><p>Disabling raw HTTP can be accomplished by passing a value of <code>false</code> or
-<code>no</code> to the <code>--web</code> flag.</p><pre><code>nuv update create /guest/demo/hello hello.js --web false
+<code>no</code> to the <code>--web</code> flag.</p><pre><code>ops update create /guest/demo/hello hello.js --web false
</code></pre><h3 id=decoding-binary-body-content-from-base64>Decoding binary body content from Base64</h3><p>When using raw HTTP handling, the <code>__ow_body</code> content will be encoded in
Base64 when the request content-type is binary. Below are functions
demonstrating how to decode the body content in Node, Python, and PHP.
@@ -317,7 +317,7 @@ function main(array $args) : array
return ["body" => $decoded];
}
</code></pre><p>As an example, save the Node function as <code>decode.js</code> and execute the
-following commands:</p><pre><code>$ nuv action create decode decode.js --web raw
+following commands:</p><pre><code>$ ops action create decode decode.js --web raw
ok: created action decode
$ curl -k -H "content-type: application" -X POST -d "Decoded body" https://${APIHOST}/api/v1/web/guest/default/decodeNode.json
{
@@ -350,7 +350,7 @@ OPTIONS requests.</p><pre><code>function main(params) {
}
}
</code></pre><p>Save the above function to <code>custom-options.js</code> and execute the following
-commands:</p><pre><code>$ nuv action create custom-option custom-options.js --web true -a web-custom-options true
+commands:</p><pre><code>$ ops action create custom-option custom-options.js --web true -a web-custom-options true
$ curl https://${APIHOST}/api/v1/web/guest/default/custom-options.http -kvX OPTIONS
< HTTP/1.1 200 OK
< Server: nginx/1.11.13
@@ -368,7 +368,7 @@ web action through your package bindings, then you should clone-and-own
the package instead.</p><p>Action parameters are inherited from its package, and the binding if
there is one. You can make package parameters
<a href=/docs/reference/entities/webactions/#annotations.adoc#protected-parameters>immutable</a> by defining their
-values through a package binding.</p><h2 id=error-handling>Error Handling</h2><p>When an OpenWhisk and Nuvolaris action fails, there are two different
+values through a package binding.</p><h2 id=error-handling>Error Handling</h2><p>When an OpenWhisk and OpenServerless action fails, there are two different
failure modes. The first is known as an <em>application error</em> and is
analogous to a caught exception: the action returns a JSON object
containing a top level <code>error</code> property. The second is a <em>developer
diff --git a/docs/reference/entities/webactions/index.html b/docs/reference/entities/webactions/index.html
index e1f7c00..1c7b043 100644
--- a/docs/reference/entities/webactions/index.html
+++ b/docs/reference/entities/webactions/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/entities/webactions/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/entities/webactions/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-i [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/webactions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Web Actions"><meta property="og:description" content="Web Actions Web actions are OpenWhisk and Nuvolaris actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which your web application can access anonymously [...]
-Web action activations will be associated with the user that created the action."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Web Actions"><meta itemprop=description content="Web Actions Web actions are OpenWhisk and Nuvolaris actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which your web application can access anonymously without requiring an OpenWhisk an [...]
-Web action activations will be associated with the user that created the action."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="2841"><meta name=twitter:card content="summary"><meta name=twitter:title content="Web Actions"><meta name=twitter:description content="Web Actions Web actions are OpenWhisk and Nuvolaris actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which your [...]
-Web action activations will be associated with the user that created the action."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header>< [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/entities/webactions/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Web Actions"><meta property="og:description" content="Web Actions Web actions are OpenWhisk and OpenServerless actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which your web application can access anonym [...]
+Web action activations will be associated with the user that created the action."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Web Actions"><meta itemprop=description content="Web Actions Web actions are OpenWhisk and OpenServerless actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which your web application can access anonymously without requiring an OpenWhi [...]
+Web action activations will be associated with the user that created the action."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="2841"><meta name=twitter:card content="summary"><meta name=twitter:title content="Web Actions"><meta name=twitter:description content="Web Actions Web actions are OpenWhisk and OpenServerless actions annotated to quickly enable you to build web based applications. This allows you to program backend logic which [...]
+Web action activations will be associated with the user that created the action."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header>< [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -87,10 +87,10 @@ Web action activations will be associated with the user that created the action.
<a href="https://github.com/apache/openserverless/issues/new/main/content/en/docs/reference/entities/webactions?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matt [...]
<a href="https://github.com/apache/openserverless/issues/issues/new?title=Web%20Actions" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
-<a id=print href=/docs/reference/entities/webactions/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#handling-http-requests-with-actions>Handling HTTP requests with actions</a></li><li><a href=#http-context>HTTP Context</a></li><li><a href=#additional-features>Additional features</a></li><li><a href=#content-extensions>Content extensions</a></li><li><a href=#protected-parameters>Protected parameters< [...]
+<a id=print href=/docs/reference/entities/webactions/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#handling-http-requests-with-actions>Handling HTTP requests with actions</a></li><li><a href=#http-context>HTTP Context</a></li><li><a href=#additional-features>Additional features</a></li><li><a href=#content-extensions>Content extensions</a></li><li><a href=#protected-parameters>Protected parameters< [...]
enable you to build web based applications. This allows you to program
backend logic which your web application can access anonymously without
-requiring an OpenWhisk and Nuvolaris authentication key. It is up to the
+requiring an OpenWhisk and OpenServerless authentication key. It is up to the
action developer to implement their own desired authentication and
authorization (i.e. OAuth flow).</p><p>Web action activations will be associated with the user that created the
action. This actions defers the cost of an action activation from the
@@ -104,13 +104,13 @@ function main({name}) {
}
</code></pre><p>You may create a <em>web action</em> <code>hello</code> in the package <code>demo</code> for the
namespace <code>guest</code> using the CLI’s <code>--web</code> flag with a value of <code>true</code> or
-<code>yes</code>:</p><pre><code>$ nuv package create demo
+<code>yes</code>:</p><pre><code>$ ops package create demo
ok: created package demo
-$ nuv action create demo/hello hello.js --web true
+$ ops action create demo/hello hello.js --web true
ok: created action demo/hello
-$ nuv action get demo/hello --url
+$ ops action get demo/hello --url
ok: got action hello
https://${APIHOST}/api/v1/web/guest/demo/hello
</code></pre><p>Using the <code>--web</code> flag with a value of <code>true</code> or <code>yes</code> allows an action
@@ -169,13 +169,13 @@ the body may be any allowed JSON value. The default content-type may be
omitted from the headers.</p><p>It is important to be aware of the <a href=/docs/reference/entities/webactions/#reference.adoc>response size
limit</a> for actions since a response that exceeds the
predefined system limits will fail. Large objects should not be sent
-inline through OpenWhisk and Nuvolaris, but instead deferred to an
-object store, for example.</p><h2 id=handling-http-requests-with-actions>Handling HTTP requests with actions</h2><p>An OpenWhisk and Nuvolaris action that is not a web action requires both
+inline through OpenWhisk and OpenServerless, but instead deferred to an
+object store, for example.</p><h2 id=handling-http-requests-with-actions>Handling HTTP requests with actions</h2><p>An OpenWhisk and OpenServerless action that is not a web action requires both
authentication and must respond with a JSON object. In contrast, web
actions may be invoked without authentication, and may be used to
implement HTTP handlers that respond with <em>headers</em>, <em>statusCode</em>, and
<em>body</em> content of different types. The web action must still return a
-JSON object, but the OpenWhisk and Nuvolaris system (namely the
+JSON object, but the OpenWhisk and OpenServerless system (namely the
<code>controller</code>) will treat a web action differently if its result includes
one or more of the following as top level JSON properties:</p><ol><li><p><code>headers</code>: a JSON object where the keys are header-names and the
values are string, number, or boolean values for those headers
@@ -196,7 +196,7 @@ and decode the string using a base64 decoder as needed. Should the body
fail to decoded correctly, an error is returned to the caller.</p><h2 id=http-context>HTTP Context</h2><p>All web actions, when invoked, receives additional HTTP request details
as parameters to the action input argument. They are:</p><ol><li><p><code>__ow_method</code> (type: string): the HTTP method of the request.</p></li><li><p><code>__ow_headers</code> (type: map string to string): the request headers.</p></li><li><p><code>__ow_path</code> (type: string): the unmatched path of the request
(matching stops after consuming the action extension).</p></li><li><p><code>__ow_user</code> (type: string): the namespace identifying the OpenWhisk
-and Nuvolaris authenticated subject.</p></li><li><p><code>__ow_body</code> (type: string): the request body entity, as a base64
+and OpenServerless authenticated subject.</p></li><li><p><code>__ow_body</code> (type: string): the request body entity, as a base64
encoded string when content is binary or JSON object/array, or plain
string otherwise.</p></li><li><p><code>__ow_query</code> (type: string): the query parameters from the request
as an unparsed string.</p></li></ol><p>A request may not override any of the named <code>__ow_</code> parameters above;
@@ -323,7 +323,7 @@ shown above.</p><pre><code>$ curl https://${APIHOST}/api/v1/web/guest/demo/hello
the absence of an extension assumes <code>.http</code> as the default. The fully
qualified name of the action must include its package name, which is
<code>default</code> if the action is not in a named package.</p><h2 id=protected-parameters>Protected parameters</h2><p>Action parameters are protected and treated as immutable. Parameters are
-automatically finalized when enabling web actions.</p><pre><code>$ nuv action create /guest/demo/hello hello.js \
+automatically finalized when enabling web actions.</p><pre><code>$ ops action create /guest/demo/hello hello.js \
--parameter name Jane \
--web true
</code></pre><p>The result of these changes is that the <code>name</code> is bound to <code>Jane</code> and
@@ -335,7 +335,7 @@ annotation</a> to
secure the web action. When the <code>require-whisk-auth</code> annotation is set
to <code>true</code>, the action will authenticate the invocation request’s Basic
Authorization credentials to confirm they represent a valid OpenWhisk
-and Nuvolaris identity. When set to a number or a case-sensitive string,
+and OpenServerless identity. When set to a number or a case-sensitive string,
the action’s invocation request must include a <code>X-Require-Whisk-Auth</code>
header having this same value. Secured web actions will return a
<code>Not Authorized</code> when credential validation fails.</p><p>Alternatively, use the <code>--web-secure</code> flag to automatically set the
@@ -343,15 +343,15 @@ header having this same value. Secured web actions will return a
generated as the <code>require-whisk-auth</code> annotation value. When set to
<code>false</code> the <code>require-whisk-auth</code> annotation is removed. When set to any
other value, that value is used as the <code>require-whisk-auth</code> annotation
-value.</p><pre><code>nuv action update /guest/demo/hello hello.js --web true --web-secure my-secret
-</code></pre><p>or</p><pre><code>nuv action update /guest/demo/hello hello.js --web true -a require-whisk-auth my-secret
+value.</p><pre><code>ops action update /guest/demo/hello hello.js --web true --web-secure my-secret
+</code></pre><p>or</p><pre><code>ops action update /guest/demo/hello hello.js --web true -a require-whisk-auth my-secret
curl https://${APIHOST}/api/v1/web/guest/demo/hello.json?name=Jane -X GET -H "X-Require-Whisk-Auth: my-secret"
</code></pre><p>It’s important to note that the owner of the web action owns all of the
web action’s activations records and will incur the cost of running the
action in the system regardless of how the action was invoked.</p><h2 id=disabling-web-actions>Disabling web actions</h2><p>To disable a web action from being invoked via web API
(<code>https://APIHOST/api/v1/web/</code>), pass a value of <code>false</code> or <code>no</code> to the
-<code>--web</code> flag while updating an action with the CLI.</p><pre><code>nuv action update /guest/demo/hello hello.js --web false
+<code>--web</code> flag while updating an action with the CLI.</p><pre><code>ops action update /guest/demo/hello hello.js --web false
</code></pre><h2 id=raw-http-handling>Raw HTTP handling</h2><p>A web action may elect to interpret and process an incoming HTTP body
directly, without the promotion of a JSON object to first class
properties available to the action input (e.g., <code>args.name</code> vs parsing
@@ -376,9 +376,9 @@ parameters and as JSON value in the HTTP request body:</p><pre><code>$ curl http
}
}
</code></pre><h3 id=enabling-raw-http-handling>Enabling raw HTTP handling</h3><p>Raw HTTP web actions are enabled via the <code>--web</code> flag using a value of
-<code>raw</code>.</p><pre><code>nuv action create /guest/demo/hello hello.js --web raw
+<code>raw</code>.</p><pre><code>ops action create /guest/demo/hello hello.js --web raw
</code></pre><h3 id=disabling-raw-http-handling>Disabling raw HTTP handling</h3><p>Disabling raw HTTP can be accomplished by passing a value of <code>false</code> or
-<code>no</code> to the <code>--web</code> flag.</p><pre><code>nuv update create /guest/demo/hello hello.js --web false
+<code>no</code> to the <code>--web</code> flag.</p><pre><code>ops update create /guest/demo/hello hello.js --web false
</code></pre><h3 id=decoding-binary-body-content-from-base64>Decoding binary body content from Base64</h3><p>When using raw HTTP handling, the <code>__ow_body</code> content will be encoded in
Base64 when the request content-type is binary. Below are functions
demonstrating how to decode the body content in Node, Python, and PHP.
@@ -401,7 +401,7 @@ function main(array $args) : array
return ["body" => $decoded];
}
</code></pre><p>As an example, save the Node function as <code>decode.js</code> and execute the
-following commands:</p><pre><code>$ nuv action create decode decode.js --web raw
+following commands:</p><pre><code>$ ops action create decode decode.js --web raw
ok: created action decode
$ curl -k -H "content-type: application" -X POST -d "Decoded body" https://${APIHOST}/api/v1/web/guest/default/decodeNode.json
{
@@ -434,7 +434,7 @@ OPTIONS requests.</p><pre><code>function main(params) {
}
}
</code></pre><p>Save the above function to <code>custom-options.js</code> and execute the following
-commands:</p><pre><code>$ nuv action create custom-option custom-options.js --web true -a web-custom-options true
+commands:</p><pre><code>$ ops action create custom-option custom-options.js --web true -a web-custom-options true
$ curl https://${APIHOST}/api/v1/web/guest/default/custom-options.http -kvX OPTIONS
< HTTP/1.1 200 OK
< Server: nginx/1.11.13
@@ -452,7 +452,7 @@ web action through your package bindings, then you should clone-and-own
the package instead.</p><p>Action parameters are inherited from its package, and the binding if
there is one. You can make package parameters
<a href=/docs/reference/entities/webactions/#annotations.adoc#protected-parameters>immutable</a> by defining their
-values through a package binding.</p><h2 id=error-handling>Error Handling</h2><p>When an OpenWhisk and Nuvolaris action fails, there are two different
+values through a package binding.</p><h2 id=error-handling>Error Handling</h2><p>When an OpenWhisk and OpenServerless action fails, there are two different
failure modes. The first is known as an <em>application error</em> and is
analogous to a caught exception: the action returns a JSON object
containing a top level <code>error</code> property. The second is a <em>developer
@@ -468,7 +468,7 @@ between the implied content-type from the extension and the action
content-type in the error response. Special consideration must be given
to web actions that are sequences, so that components that make up a
sequence can generate adequate errors when necessary.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/index.html b/docs/reference/index.html
index 77d5a6b..7828ffd 100644
--- a/docs/reference/index.html
+++ b/docs/reference/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x [...]
-<meta name=description content="OpenServerless Developer Guide"><meta property="og:url" content="/docs/reference/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Reference"><meta property="og:description" content="OpenServerless Developer Guide"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Reference"><meta itemprop=description content="OpenServerless Developer Guide"><met [...]
+<meta name=description content="OpenServerless Developer Guide"><meta property="og:url" content="/docs/reference/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Reference"><meta property="og:description" content="OpenServerless Developer Guide"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Reference"><meta itemprop=description content="OpenServerless Developer Guide"><met [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -94,7 +94,7 @@ supports directly <a href=/docs/reference/#index-runtimes.adoc>this list of prog
languages</a>. The list is expanding over the time.</p><p>See below for documentation related to:</p><ul><li><p><a href=/docs/reference/#index-entities.adoc>OpenWhisk Entities</a></p></li><li><p><a href=/docs/reference/#index-runtimes.adoc>OpenServerless Runtimes</a></p></li><li><p><a href=/docs/reference/tools/>OpenServerless <code>ops</code> Tools</a></p></li><li><p><a href=/docs/reference/tasks/>OpenServerless <code>ops</code> Tasks</a></p></li><li><p><a href=/docs/reference/#index-re [...]
kit</a> to build your own runtime for your
favorite programming language.</p><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/reference/references/>Advanced</a></h5><p></p></div><div class=entry><h5><a href=/docs/reference/entities/>Entities</a></h5><p></p></div><div class=entry><h5><a href=/docs/reference/runtimes/>Runtimes</a></h5><p></p></div><div class=entry><h5><a href=/docs/reference/tasks/>Tasks</a></h5><p></p></div><div class=entry><h5><a href=/docs/reference/tools/>Tools</a></h5><p></p></d [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/references/_print/index.html b/docs/reference/references/_print/index.html
index cd548a3..53d4335 100644
--- a/docs/reference/references/_print/index.html
+++ b/docs/reference/references/_print/index.html
@@ -9,12 +9,12 @@ Naming and Limits
Advanced CLI
Rest API
Runtimes under the hood
-Building your runtime"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="24"><meta name=twitter:card content="summary"><meta name=twitter:title content="Advanced"><meta name=twitter:description content="Advanced Reference Guides You can find advanced reference documentations here:
+Building your runtime"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="24"><meta name=twitter:card content="summary"><meta name=twitter:title content="Advanced"><meta name=twitter:description content="Advanced Reference Guides You can find advanced reference documentations here:
Naming and Limits
Advanced CLI
Rest API
Runtimes under the hood
-Building your runtime"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark>< [...]
+Building your runtime"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark>< [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/references/>Return to the regular view of this page</a>.</p></div><h1 class=title>Advanced</h1><ul><li>1: <a href=#pg-4e4418ead51c6c16751a09aaa9f7902c>Advanced CLI</a></li><ul></ul><li>2: <a href=#pg-84f68b8583b274cc8a7f9f04c649e1b4>Building your runtime</a></li><ul></ul><li>3: <a href=#pg-aa85069ab6f58eef613cc4e73ddbe0c1>Naming And Limits</a></li><ul></ul><li>4: <a href=#pg-5b43e18f4cddb0aabe980 [...]
extends and embeds the OpenWhisk <code>wsk</code>.</p><p>You can download it from <a href=/docs/reference/references/advanced-cli/#installation:download.adoc>here</a>.</p><p>We can see here some advanced uses of <code>ops</code>.</p><p>OpenServerless access is usually configure logging into it with the
<code>ops -login</code>.</p><p>You can also configure access directly using the <code>ops -wsk</code> command.</p><p>There are two required properties to configure:</p><ol><li><p><strong>API host</strong> (name or IP address) for the OpenWhisk and OpenServerless
@@ -50,7 +50,7 @@ programming language</a>, originally developed
specifically to support the <a href=https://github.com/apache/openwhisk-runtime-go>OpenWhisk and OpenServerless Go language
runtime</a>. However, it
was written in a generic way such that it has since been adopted to
-implement OpenWhisk and Nuvolaris runtimes for Swift, PHP, Python, Rust,
+implement OpenWhisk and OpenServerless runtimes for Swift, PHP, Python, Rust,
Java, Ruby and Crystal. Even though it was developed with compiled
languages in mind it works equally well with scripting languages.</p><p>Using it, you can develop a new runtime in a fraction of the time needed
for authoring a full-fledged runtime from scratch. This is due to the
@@ -132,7 +132,7 @@ actionloop-demo-ruby-v2.6 latest df3e77c9cd8f 2 minutes ag
<code>actionloop-demo-ruby-v2.6</code>. However, despite having <code>Ruby</code> in the name,
internally it still is a <code>Python</code> language runtime which we will need to
change to one supporting <code>Ruby</code> as we continue in this tutorial.</p><h2 id=preparing-the-docker-environment>Preparing the Docker environment</h2><p>Our language runtime’s <code>Dockerfile</code> has the task of preparing an
-environment for executing OpenWhisk and Nuvolaris Actions. Using the
+environment for executing OpenWhisk and OpenServerless Actions. Using the
ActionLoop approach, we use a multistage Docker build to</p><ol><li><p>derive our OpenWhisk and OpenServerless language runtime from an existing
Docker image that has all the target language’s tools and libraries
for running functions authored in that language.</p><ul><li>In our case, we will reference the <code>ruby:2.6.2-alpine3.9</code> image
@@ -140,7 +140,7 @@ from the <a href=https://hub.docker.com/_/ruby>Official Docker Images for
Ruby</a> on Docker Hub.</li></ul></li><li><p>leverage the existing <code>openwhisk/actionlooop-v2</code> image on Docker Hub
from which we will “extract” the <em>ActionLoop</em> proxy (i.e. copy
<code>/bin/proxy</code> binary) our runtime will use to process Activation
-requests from the OpenWhisk and Nuvolaris platform and execute
+requests from the OpenWhisk and OpenServerless platform and execute
Actions by using the language’s tools and libraries from step #1.</p></li></ol><h2 id=repurpose-the-renamed-python-dockerfile-for-ruby-builds>Repurpose the renamed Python Dockerfile for Ruby builds</h2><p>Let’s edit the <code>ruby2.6/Dockerfile</code> to use the official Ruby image on
Docker Hub as our base image, instead of a Python image, and add our our
Ruby launcher script:</p><pre><code> FROM openwhisk/actionloop-v2:latest as builder
@@ -186,7 +186,7 @@ from main__ import main as main
require "./main__"
</code></pre><p><em>Note that you are free to decide the path and filename for the
function’s source code. In our examples, we chose a base filename that
-includes the word <code>"main"</code> (since it is OpenWhisk and Nuvolaris’s
+includes the word <code>"main"</code> (since it is OpenWhisk and OpenServerless
default function name) and append two underscores to better assure
uniqueness.</em></p><h4 id=open-file-descriptor-fd-3-for-function-results-output>Open File Descriptor (FD) 3 for function results output</h4><p>The <code>ActionLoop</code> proxy expects to read the results of invoking the
Action function from File Descriptor (FD) 3.</p><p>The existing Python:</p><pre><code>out = fdopen(3, "wb")
@@ -334,7 +334,7 @@ change:</p><pre><code> write_file("%s/exec" % tgt_dir, ""&qu
</code></pre><p>For an interpreted language that is all. We move the <code>src</code> folder in the
<code>bin</code>. For a compiled language instead, we may want to actually invoke
the compiler to produce the executable.</p><h2 id=debugging>Debugging</h2><p>Now that we have completed both the <code>launcher</code> and <code>compile</code> scripts, it
-is time to test them.</p><p>Here we will learn how to:</p><ol><li><p>enter in a test environment</p></li><li><p>simple smoke tests to check things work</p></li><li><p>writing the validation tests</p></li><li><p>testing the image in an actual OpenWhisk and Nuvolaris environment</p></li></ol><h3 id=entering-in-the-test-environment>Entering in the test environment</h3><p>In the starter kit, there is a <code>Makefile</code> that can help with our
+is time to test them.</p><p>Here we will learn how to:</p><ol><li><p>enter in a test environment</p></li><li><p>simple smoke tests to check things work</p></li><li><p>writing the validation tests</p></li><li><p>testing the image in an actual OpenWhisk and OpenServerless environment</p></li></ol><h3 id=entering-in-the-test-environment>Entering in the test environment</h3><p>In the starter kit, there is a <code>Makefile</code> that can help with our
development efforts.</p><p>We can build the Dockerfile using the provided Makefile. Since it has a
reference to the image we are building, let’s change it:</p><pre><code>sed -i.bak -e 's/actionloop-demo-python-v3.7/actionloop-demo-ruby-v2.6/' ruby2.6/Makefile
</code></pre><p>We should be now able to build the image and enter in it with
@@ -365,7 +365,7 @@ $ make debug
# results omitted for brevity ...
# (you should see a shell prompt of your image)
$ /bin/proxy -debug
-2019/04/08 07:47:36 OpenWhisk and Nuvolaris ActionLoop Proxy 2: starting
+2019/04/08 07:47:36 OpenWhisk and OpenServerless ActionLoop Proxy 2: starting
</code></pre><p>Now the runtime is started in debug mode, listening on port 8080, and
ready to accept Action deployments.</p><p>Open another terminal (while leaving the first one running the proxy)
and go <em>into the top-level directory of our project</em> to test the Action
@@ -380,7 +380,7 @@ $ python tools/invoke.py run '{"name":"Mike"}'
</code></pre><p>We should also see debug output from the first terminal running the
proxy (with the <code>debug</code> flag) which should have successfully processed
the <code>init</code> and <code>run</code> requests above.</p><p>The proxy’s debug output should appear something like:</p><pre><code>/proxy # /bin/proxy -debug
-2019/04/08 07:54:57 OpenWhisk and Nuvolaris ActionLoop Proxy 2: starting
+2019/04/08 07:54:57 OpenWhisk and OpenServerless ActionLoop Proxy 2: starting
2019/04/08 07:58:00 compiler: /proxy/bin/compile
2019/04/08 07:58:00 it is source code
2019/04/08 07:58:00 compiling: ./action/16/src/exec main: hello
@@ -440,7 +440,7 @@ action/2/bin/main__.rb
</code></pre><h2 id=testing>Testing</h2><p>If we have reached this point in the tutorial, the runtime is able to
run and execute a simple test action. Now we need to validate the
runtime against a set of mandatory tests both locally and within an
-OpenWhisk and Nuvolaris staging environment. Additionally, we should
+OpenWhisk and OpenServerless staging environment. Additionally, we should
author and automate additional tests for language specific features and
styles.</p><p>The <code>starter kit</code> includes two handy <code>makefiles</code> that we can leverage
for some additional tests. In the next sections, we will show how to
@@ -497,19 +497,19 @@ public cloud. So as the last step before moving forward, let’s push the
image to Docker Hub with <code>make push</code>.</p><h3 id=testing-on-openwhisk-and-openserverless>Testing on OpenWhisk and OpenServerless</h3><p>To run this test you need to configure access to OpenWhisk and OpenServerless
with <code>ops</code>. A simple way is to get access is to register a free account
in the IBM Cloud but this works also with our own deployment of
-OpenWhisk and Nuvolaris.</p><p>Edit the Makefile as we did previously:</p><pre><code>IMG=actionloop-demo-ruby-v2.6:latest
+OpenWhisk and OpenServerless.</p><p>Edit the Makefile as we did previously:</p><pre><code>IMG=actionloop-demo-ruby-v2.6:latest
ACT=hello-demo-ruby
PREFIX=docker.io/<docker username>
</code></pre><p>Also, change any reference to <code>hello.py</code> and <code>main.py</code> to <code>hello.rb</code> and
<code>main.rb</code>.</p><p>Once this is done, we can re-run the tests we executed locally on “the
real thing”.</p><p>Test single:</p><pre><code>$ make test-single
-nuv action update hello-demo-ruby hello.rb --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest --main hello
+ops action update hello-demo-ruby hello.rb --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest --main hello
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
@@ -517,25 +517,25 @@ nuv action invoke hello-demo-ruby -p name Mike -r
zip src.zip main.rb hello.rb
adding: main.rb (deflated 42%)
adding: hello.rb (deflated 42%)
-nuv action update hello-demo-ruby src.zip --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest
+ops action update hello-demo-ruby src.zip --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
</code></pre><p>Test binary ZIP:</p><pre><code>$ make test-bin-zip
docker run -i actionloop-demo-ruby-v2.6:latest -compile main <src.zip >bin.zip
-nuv action update hello-demo-ruby bin.zip --docker docker.io/actionloop/actionloop-demo-ruby-v2.6:latest
+ops action update hello-demo-ruby bin.zip --docker docker.io/actionloop/actionloop-demo-ruby-v2.6:latest
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
@@ -575,8 +575,8 @@ runtime.actionContainers.ActionLoopPythoRubyTests > runtime proxy should echo
BUILD SUCCESSFUL in 55s
</code></pre><p>Big congratulations are in order having reached this point successfully.
At this point, our runtime should be ready to run on any OpenWhisk and
-Nuvolaris platform and also can be submitted for consideration to be
-included in the Apache OpenWhisk and Nuvolaris project.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-aa85069ab6f58eef613cc4e73ddbe0c1>3 - Naming And Limits</h1><h1 id=system-details>System details</h1><p>The following sections provide more details about the OpenWhisk and
+OpenServerless platform and also can be submitted for consideration to be
+included in the Apache OpenWhisk and OpenServerless project.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-aa85069ab6f58eef613cc4e73ddbe0c1>3 - Naming And Limits</h1><h1 id=system-details>System details</h1><p>The following sections provide more details about the OpenWhisk and
OpenServerless system.</p><h2 id=entities>Entities</h2><h3 id=namespaces-and-packages>Namespaces and packages</h3><p>OpenWhisk and OpenServerless actions, triggers, and rules belong in a
namespace, and optionally a package.</p><p>Packages can contain actions and feeds. A package cannot contain another
package, so package nesting is not allowed. Also, entities do not have
@@ -590,7 +590,7 @@ with a <code>/</code>.</p><p>For convenience, the namespace can be left off if i
<em>default namespace</em>.</p><p>For example, consider a user whose default namespace is <code>/myOrg</code>.
Following are examples of the fully qualified names of a number of
entities and their aliases.</p><table><col style=width:20%><col style=width:20%><col style=width:20%><col style=width:20%><col style=width:20%><thead><tr class=header><th style=text-align:left>Fully qualified name</th><th style=text-align:left>Alias</th><th style=text-align:left>Namespace</th><th style=text-align:left>Package</th><th style=text-align:left>Name</th></tr></thead><tbody><tr class=odd><td style=text-align:left><p><code>/whisk.system/cloudant/read</code></p></td><td style=tex [...]
-Nuvolaris CLI, among other places.</p><h3 id=entity-names>Entity names</h3><p>The names of all entities, including actions, triggers, rules, packages,
+OpenServerless CLI, among other places.</p><h3 id=entity-names>Entity names</h3><p>The names of all entities, including actions, triggers, rules, packages,
and namespaces, are a sequence of characters that follow the following
format:</p><ul><li><p>The first character must be an alphanumeric character, or an
underscore.</p></li><li><p>The subsequent characters can be alphanumeric, spaces, or any of the
@@ -650,7 +650,7 @@ per namespace per minute</p></td><td style=text-align:left><p>per user</p></td><
may be fired in one minute windows.</p></li><li><p>A user cannot change this limit when creating the trigger.</p></li><li><p>A CLI or API call that exceeds this limit receives an error code
corresponding to HTTP status code <code>429: TOO MANY REQUESTS</code>.</p></li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-5b43e18f4cddb0aabe9809532e2cc2fe>4 - Rest API</h1><h1 id=using-rest-apis-with-openwhisk-and-nuvoopenserverlesslaris>Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris</h1><p>After your OpenWhisk and OpenServerlesss environment is enabled, you can use
it with your web apps or mobile apps with REST API calls.</p><p>For more details about the APIs for actions, activations, packages,
-rules, and triggers, see the <a href="http://petstore.swagger.io/?url=https://raw.githubusercontent.com/openwhisk/openwhisk/master/core/controller/src/main/resources/apiv1swagger.json">OpenWhisk and Nuvolaris API
+rules, and triggers, see the <a href="http://petstore.swagger.io/?url=https://raw.githubusercontent.com/openwhisk/openwhisk/master/core/controller/src/main/resources/apiv1swagger.json">OpenWhisk and OpenServerless API
documentation</a>.</p><p>All the capabilities in the system are available through a REST API.
There are collection and entity endpoints for actions, triggers, rules,
packages, activations, and namespaces.</p><p>These are the collection endpoints:</p><pre><code>https://$APIHOST/api/v1/namespaces
@@ -678,7 +678,7 @@ enable or disable rules.</p><p>All APIs are protected with HTTP Basic authentica
authentication. The Basic authentication credentials are in the <code>AUTH</code>
property in your <code>~/.nuvprops</code> file, delimited by a colon. You can also
retrieve these credentials using the CLI running
-<code>nuv property get --auth</code>.</p><p>The following is an example that uses the <a href=https://curl.haxx.se>cURL</a>
+<code>ops property get --auth</code>.</p><p>The following is an example that uses the <a href=https://curl.haxx.se>cURL</a>
command tool to get the list of all packages in the <code>whisk.system</code>
namespace:</p><pre><code>curl -u USERNAME:PASSWORD https://$APIHOST/api/v1/namespaces/whisk.system/packages
@@ -708,9 +708,9 @@ allowed (that is, Access-Control-Allow-Methods is
<code>Authorization, Origin, X-Requested-With, Content-Type, Accept, User-Agent</code>.</p><p><strong>Attention:</strong> Because OpenWhisk and OpenServerless currently supports only
one key per namespace, it is not recommended to use CORS beyond simple
experiments. Use <a href=/docs/reference/references/rest_api/#webactions.adoc>Web Actions</a> to expose your actions
-to the public and not use the OpenWhisk and Nuvolaris authorization key
+to the public and not use the OpenWhisk and OpenServerless authorization key
for client applications that require CORS.</p><h2 id=using-the-cli-verbose-mode>Using the CLI verbose mode</h2><p>The OpenWhisk and OpenServerless CLI is an interface to the OpenWhisk and
-Nuvolaris REST API. You can run the CLI in verbose mode with the flag
+OpenServerless REST API. You can run the CLI in verbose mode with the flag
<code>-v</code>, this will print truncated information about the HTTP request and
response. To print all information use the flag <code>-d</code> for debug.</p><p><strong>Note:</strong> HTTP request and response bodies will only be truncated if
they exceed 1000 bytes.</p><p>Let’s try getting the namespace value for the current user.</p><pre><code>ops namespace list -v
@@ -723,7 +723,7 @@ Req Headers
"Basic XXXYYYY"
],
"User-Agent": [
- "OpenWhisk and Nuvolaris-CLI/1.0 (2017-08-10T20:09:30+00:00)"
+ "OpenWhisk and OpenServerless-CLI/1.0 (2017-08-10T20:09:30+00:00)"
]
}
RESPONSE:Got response with code 200
@@ -743,7 +743,7 @@ the HTTP request, it performs a HTTP method <code>GET</code> on the URL
Authorization header <code>Basic XXXYYYY</code>. Notice that the authorization
value is your base64-encoded OpenWhisk and OpenServerless authorization
string. The response is of content type <code>application/json</code>.</p><h2 id=actions>Actions</h2><p><strong>Note:</strong> In the examples that follow, <code>$AUTH</code> and <code>$APIHOST</code> represent
-environment variables set respectively to your OpenWhisk and Nuvolaris
+environment variables set respectively to your OpenWhisk and OpenServerless
authorization key and API host.</p><p>To create or update an action send a HTTP request with method <code>PUT</code> on
the the actions collection. For example, to create a <code>nodejs:6</code> action
with the name <code>hello</code> using a single file content use the following:</p><pre><code>curl -u $AUTH -d '{"namespace":"_","name":"hello","exec":{"kind":"nodejs:6","code":"function main(params) { return {payload:\"Hello \"+params.name}}"}}' -X PUT -H "Content-Type: application/json" https://$APIHOST/api/v1/namespaces/_/actions/hello?overwrite=true
@@ -800,7 +800,7 @@ on the action</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/a
-X PUT -H "Content-Type: application/json" \
-d '{"namespace":"_","name":"hello","exec":{"kind":"nodejs:6","code":"function main(params) { return {payload:\"Hello \"+params.name}}"},"annotations":[{"key":"web-export","value":true},{"key":"raw-http","value":false},{"key":"final","value":true}]}'
</code></pre><p>You can now invoke this action as a public URL with no OpenWhisk and
-Nuvolaris authorization. Try invoking using the web action public URL
+OpenServerless authorization. Try invoking using the web action public URL
including an optional extension such as <code>.json</code> or <code>.http</code> for example
at the end of the URL.</p><pre><code>curl https://$APIHOST/api/v1/web/john@example.com_dev/default/hello.json?name=John
@@ -810,7 +810,7 @@ at the end of the URL.</p><pre><code>curl https://$APIHOST/api/v1/web/john@examp
</code></pre><p>Note that this example source code will not work with <code>.http</code>, see <a href=webactions.md>web
actions</a> documentation on how to modify.</p><h2 id=sequences>Sequences</h2><p>To create an action sequence, you need to create it by providing the
names of the actions that compose the sequence in the desired order, so
-the output from the first action is passed as input to the next action.</p><p>$ nuv action create sequenceAction –sequence
+the output from the first action is passed as input to the next action.</p><p>$ ops action create sequenceAction –sequence
/whisk-system/utils/split,/whisk-system/utils/sort</p><p>Create a sequence with the actions <code>/whisk-system/utils/split</code> and
<code>/whisk-system/utils/sort</code>.</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/actions/sequenceAction?overwrite=true \
-X PUT -H "Content-Type: application/json" \
@@ -963,8 +963,8 @@ object providing a new activation context and the input parameters for
the function. There may be many activations of the same function against
the same proxy (viz. container). Currently, the activations are
guaranteed not to overlap — that is, at any given time, there is at most
-one request to <code>/run</code> from the OpenWhisk and Nuvolaris platform.</p><p>The route must accept a JSON object and respond with a JSON object,
-otherwise the OpenWhisk and Nuvolaris platform will treat the activation
+one request to <code>/run</code> from the OpenWhisk and OpenServerless platform.</p><p>The route must accept a JSON object and respond with a JSON object,
+otherwise the OpenWhisk and OpenServerless platform will treat the activation
as a failure and proceed to destroy the container. The JSON object
provided by the platform follows the following schema:</p><pre><code>{
"value": JSON,
@@ -977,14 +977,14 @@ provided by the platform follows the following schema:</p><pre><code>{
"deadline": Number
}
</code></pre><ul><li><p><code>value</code> is a JSON object and contains all the parameters for the
-function activation.</p></li><li><p><code>namespace</code> is the OpenWhisk and Nuvolaris namespace for the action
+function activation.</p></li><li><p><code>namespace</code> is the OpenWhisk and OpenServerless namespace for the action
(e.g., <code>whisk-system</code>).</p></li><li><p><code>action_name</code> is the <a href=reference.md#fully-qualified-names>fully qualified
name</a> of the action.</p></li><li><p><code>activation_id</code> is a unique ID for this activation.</p></li><li><p><code>transaction_id</code> is a unique ID for the request of which this
activation is part of.</p></li><li><p><code>deadline</code> is the deadline for the function.</p></li><li><p><code>api_key</code> is the API key used to invoke the action.</p></li></ul><p>The <code>value</code> is the function parameters. The rest of the properties
become part of the activation context which is a set of environment
variables constructed by capitalizing each of the property names, and
prefixing the result with <code>__OW_</code>. Additionally, the context must define
-<code>__OW_API_HOST</code> whose value is the OpenWhisk and Nuvolaris API host.
+<code>__OW_API_HOST</code> whose value is the OpenWhisk and OpenServerless API host.
This value is currently provided as an environment variable defined at
container startup time and hence already available in the context.</p><p><strong>Successful activation:</strong> The route must respond with <code>200 OK</code> if the
activation is successful and the function has produced a JSON object as
@@ -993,7 +993,7 @@ activation</a>.</p><p><strong>Failed activation:</strong> Any response other tha
activation error. The response from the handler must be a JSON object
with a single field called <code>error</code> describing the failure. The value of
the error field may be any valid JSON value. Should the proxy fail to
-respond with a JSON object, the OpenWhisk and Nuvolaris platform will
+respond with a JSON object, the OpenWhisk and OpenServerless platform will
treat the failure as an uncaught exception. These two failures modes are
distinguished by the value of the <code>response.status</code> in the activation
record which is <code>application error</code> if the proxy returned an <code>error</code>
@@ -1035,7 +1035,7 @@ action.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-
</span></span><span style=display:flex><span> <span style=color:#204a87;font-weight:700>return</span> <span style=color:#000;font-weight:700>{</span>
</span></span><span style=display:flex><span> <span style=color:#4e9a06>'body'</span><span style=color:#000;font-weight:700>:</span> <span style=color:#4e9a06>'action invoked'</span>
</span></span><span style=display:flex><span> <span style=color:#000;font-weight:700>}</span>
-</span></span></code></pre></div><p>abd save it to a file called <code>scheduled-action.py</code></p><p>To deploy the action and instruct OpenServerless to execute it every 30 minutes, issue the following command:</p><p><code>ops action create scheduled-action scheduled-action.py -a cron "*/30 * * * *"</code></p><p>So you can create the action in the usual way and at the end add -a cron yourCronExpression.</p><h1 id=how-to-deploy-a-one-shot-execution-action>How to Deploy a One-Shot Execu [...]
+</span></span></code></pre></div><p>abd save it to a file called <code>scheduled-action.py</code></p><p>To deploy the action and instruct OpenServerless to execute it every 30 minutes, issue the following command:</p><p><code>ops action create scheduled-action scheduled-action.py -a cron "*/30 * * * *"</code></p><p>So you can create the action in the usual way and at the end add -a cron yourCronExpression.</p><h1 id=how-to-deploy-a-one-shot-execution-action>How to Deploy a One-Shot Execu [...]
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>[</span>
</span></span><span style=display:flex><span> <span style=color:#4e9a06>"2024-03-08T07:28:02.050739962Z stdout: Hello from a scheduled action"</span>
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>]</span>
diff --git a/docs/reference/references/actions-actionloop/_print/index.html b/docs/reference/references/actions-actionloop/_print/index.html
index 9a6c8e3..51708c6 100644
--- a/docs/reference/references/actions-actionloop/_print/index.html
+++ b/docs/reference/references/actions-actionloop/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/references/actions-actionloop/><link rel=alternate type=application/rss+xml href=/docs/reference/references/actions-actionloop/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/references/actions-actionloop/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Building your runtime"><meta property="og:description" content="Developing a new Runtime with the ActionLoop proxy The OpenWhisk and OpenServerless runtime specification defines the expected behavior of an OpenWhisk and OpenServerless runtime; you can choose [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/references/actions-actionloop/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Building your runtime"><meta property="og:description" content="Developing a new Runtime with the ActionLoop proxy The OpenWhisk and OpenServerless runtime specification defines the expected behavior of an OpenWhisk and OpenServerless runtime; you can choose [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/references/actions-actionloop/>Return to the regular view of this page</a>.</p></div><h1 class=title>Building your runtime</h1><ul></ul><div class=content><h1 id=developing-a-new-runtime-with-the-actionloop-proxy>Developing a new Runtime with the ActionLoop proxy</h1><p>The <a href=/docs/reference/references/actions-actionloop/#actions-new.adoc>OpenWhisk and OpenServerless runtime specification</a>
defines the expected behavior of an OpenWhisk and OpenServerless runtime; you
can choose to implement a new runtime from scratch by just following
@@ -13,7 +13,7 @@ programming language</a>, originally developed
specifically to support the <a href=https://github.com/apache/openwhisk-runtime-go>OpenWhisk and OpenServerless Go language
runtime</a>. However, it
was written in a generic way such that it has since been adopted to
-implement OpenWhisk and Nuvolaris runtimes for Swift, PHP, Python, Rust,
+implement OpenWhisk and OpenServerless runtimes for Swift, PHP, Python, Rust,
Java, Ruby and Crystal. Even though it was developed with compiled
languages in mind it works equally well with scripting languages.</p><p>Using it, you can develop a new runtime in a fraction of the time needed
for authoring a full-fledged runtime from scratch. This is due to the
@@ -95,7 +95,7 @@ actionloop-demo-ruby-v2.6 latest df3e77c9cd8f 2 minutes ag
<code>actionloop-demo-ruby-v2.6</code>. However, despite having <code>Ruby</code> in the name,
internally it still is a <code>Python</code> language runtime which we will need to
change to one supporting <code>Ruby</code> as we continue in this tutorial.</p><h2 id=preparing-the-docker-environment>Preparing the Docker environment</h2><p>Our language runtime’s <code>Dockerfile</code> has the task of preparing an
-environment for executing OpenWhisk and Nuvolaris Actions. Using the
+environment for executing OpenWhisk and OpenServerless Actions. Using the
ActionLoop approach, we use a multistage Docker build to</p><ol><li><p>derive our OpenWhisk and OpenServerless language runtime from an existing
Docker image that has all the target language’s tools and libraries
for running functions authored in that language.</p><ul><li>In our case, we will reference the <code>ruby:2.6.2-alpine3.9</code> image
@@ -103,7 +103,7 @@ from the <a href=https://hub.docker.com/_/ruby>Official Docker Images for
Ruby</a> on Docker Hub.</li></ul></li><li><p>leverage the existing <code>openwhisk/actionlooop-v2</code> image on Docker Hub
from which we will “extract” the <em>ActionLoop</em> proxy (i.e. copy
<code>/bin/proxy</code> binary) our runtime will use to process Activation
-requests from the OpenWhisk and Nuvolaris platform and execute
+requests from the OpenWhisk and OpenServerless platform and execute
Actions by using the language’s tools and libraries from step #1.</p></li></ol><h2 id=repurpose-the-renamed-python-dockerfile-for-ruby-builds>Repurpose the renamed Python Dockerfile for Ruby builds</h2><p>Let’s edit the <code>ruby2.6/Dockerfile</code> to use the official Ruby image on
Docker Hub as our base image, instead of a Python image, and add our our
Ruby launcher script:</p><pre><code> FROM openwhisk/actionloop-v2:latest as builder
@@ -149,7 +149,7 @@ from main__ import main as main
require "./main__"
</code></pre><p><em>Note that you are free to decide the path and filename for the
function’s source code. In our examples, we chose a base filename that
-includes the word <code>"main"</code> (since it is OpenWhisk and Nuvolaris’s
+includes the word <code>"main"</code> (since it is OpenWhisk and OpenServerless
default function name) and append two underscores to better assure
uniqueness.</em></p><h4 id=open-file-descriptor-fd-3-for-function-results-output>Open File Descriptor (FD) 3 for function results output</h4><p>The <code>ActionLoop</code> proxy expects to read the results of invoking the
Action function from File Descriptor (FD) 3.</p><p>The existing Python:</p><pre><code>out = fdopen(3, "wb")
@@ -297,7 +297,7 @@ change:</p><pre><code> write_file("%s/exec" % tgt_dir, ""&qu
</code></pre><p>For an interpreted language that is all. We move the <code>src</code> folder in the
<code>bin</code>. For a compiled language instead, we may want to actually invoke
the compiler to produce the executable.</p><h2 id=debugging>Debugging</h2><p>Now that we have completed both the <code>launcher</code> and <code>compile</code> scripts, it
-is time to test them.</p><p>Here we will learn how to:</p><ol><li><p>enter in a test environment</p></li><li><p>simple smoke tests to check things work</p></li><li><p>writing the validation tests</p></li><li><p>testing the image in an actual OpenWhisk and Nuvolaris environment</p></li></ol><h3 id=entering-in-the-test-environment>Entering in the test environment</h3><p>In the starter kit, there is a <code>Makefile</code> that can help with our
+is time to test them.</p><p>Here we will learn how to:</p><ol><li><p>enter in a test environment</p></li><li><p>simple smoke tests to check things work</p></li><li><p>writing the validation tests</p></li><li><p>testing the image in an actual OpenWhisk and OpenServerless environment</p></li></ol><h3 id=entering-in-the-test-environment>Entering in the test environment</h3><p>In the starter kit, there is a <code>Makefile</code> that can help with our
development efforts.</p><p>We can build the Dockerfile using the provided Makefile. Since it has a
reference to the image we are building, let’s change it:</p><pre><code>sed -i.bak -e 's/actionloop-demo-python-v3.7/actionloop-demo-ruby-v2.6/' ruby2.6/Makefile
</code></pre><p>We should be now able to build the image and enter in it with
@@ -328,7 +328,7 @@ $ make debug
# results omitted for brevity ...
# (you should see a shell prompt of your image)
$ /bin/proxy -debug
-2019/04/08 07:47:36 OpenWhisk and Nuvolaris ActionLoop Proxy 2: starting
+2019/04/08 07:47:36 OpenWhisk and OpenServerless ActionLoop Proxy 2: starting
</code></pre><p>Now the runtime is started in debug mode, listening on port 8080, and
ready to accept Action deployments.</p><p>Open another terminal (while leaving the first one running the proxy)
and go <em>into the top-level directory of our project</em> to test the Action
@@ -343,7 +343,7 @@ $ python tools/invoke.py run '{"name":"Mike"}'
</code></pre><p>We should also see debug output from the first terminal running the
proxy (with the <code>debug</code> flag) which should have successfully processed
the <code>init</code> and <code>run</code> requests above.</p><p>The proxy’s debug output should appear something like:</p><pre><code>/proxy # /bin/proxy -debug
-2019/04/08 07:54:57 OpenWhisk and Nuvolaris ActionLoop Proxy 2: starting
+2019/04/08 07:54:57 OpenWhisk and OpenServerless ActionLoop Proxy 2: starting
2019/04/08 07:58:00 compiler: /proxy/bin/compile
2019/04/08 07:58:00 it is source code
2019/04/08 07:58:00 compiling: ./action/16/src/exec main: hello
@@ -403,7 +403,7 @@ action/2/bin/main__.rb
</code></pre><h2 id=testing>Testing</h2><p>If we have reached this point in the tutorial, the runtime is able to
run and execute a simple test action. Now we need to validate the
runtime against a set of mandatory tests both locally and within an
-OpenWhisk and Nuvolaris staging environment. Additionally, we should
+OpenWhisk and OpenServerless staging environment. Additionally, we should
author and automate additional tests for language specific features and
styles.</p><p>The <code>starter kit</code> includes two handy <code>makefiles</code> that we can leverage
for some additional tests. In the next sections, we will show how to
@@ -460,19 +460,19 @@ public cloud. So as the last step before moving forward, let’s push the
image to Docker Hub with <code>make push</code>.</p><h3 id=testing-on-openwhisk-and-openserverless>Testing on OpenWhisk and OpenServerless</h3><p>To run this test you need to configure access to OpenWhisk and OpenServerless
with <code>ops</code>. A simple way is to get access is to register a free account
in the IBM Cloud but this works also with our own deployment of
-OpenWhisk and Nuvolaris.</p><p>Edit the Makefile as we did previously:</p><pre><code>IMG=actionloop-demo-ruby-v2.6:latest
+OpenWhisk and OpenServerless.</p><p>Edit the Makefile as we did previously:</p><pre><code>IMG=actionloop-demo-ruby-v2.6:latest
ACT=hello-demo-ruby
PREFIX=docker.io/<docker username>
</code></pre><p>Also, change any reference to <code>hello.py</code> and <code>main.py</code> to <code>hello.rb</code> and
<code>main.rb</code>.</p><p>Once this is done, we can re-run the tests we executed locally on “the
real thing”.</p><p>Test single:</p><pre><code>$ make test-single
-nuv action update hello-demo-ruby hello.rb --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest --main hello
+ops action update hello-demo-ruby hello.rb --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest --main hello
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
@@ -480,25 +480,25 @@ nuv action invoke hello-demo-ruby -p name Mike -r
zip src.zip main.rb hello.rb
adding: main.rb (deflated 42%)
adding: hello.rb (deflated 42%)
-nuv action update hello-demo-ruby src.zip --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest
+ops action update hello-demo-ruby src.zip --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
</code></pre><p>Test binary ZIP:</p><pre><code>$ make test-bin-zip
docker run -i actionloop-demo-ruby-v2.6:latest -compile main <src.zip >bin.zip
-nuv action update hello-demo-ruby bin.zip --docker docker.io/actionloop/actionloop-demo-ruby-v2.6:latest
+ops action update hello-demo-ruby bin.zip --docker docker.io/actionloop/actionloop-demo-ruby-v2.6:latest
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
@@ -538,8 +538,8 @@ runtime.actionContainers.ActionLoopPythoRubyTests > runtime proxy should echo
BUILD SUCCESSFUL in 55s
</code></pre><p>Big congratulations are in order having reached this point successfully.
At this point, our runtime should be ready to run on any OpenWhisk and
-Nuvolaris platform and also can be submitted for consideration to be
-included in the Apache OpenWhisk and Nuvolaris project.</p></div></div></main></div></div><footer class="td-footer row d-print-none"><div class=container-fluid><div class="disclaimer text-center"><div class="row mx-md-2"><div class="td-footer__left col-6 col-sm-2 order-sm-1"> </div><div class="td-footer__right col-6 col-sm-2 order-sm-3"> </div><div class="td-footer__center col-12 col-sm-8 py-2 order-sm-2"><p>Apache Openserverless™ is an effort undergoing incubation at The Apach [...]
+OpenServerless platform and also can be submitted for consideration to be
+included in the Apache OpenWhisk and OpenServerless project.</p></div></div></main></div></div><footer class="td-footer row d-print-none"><div class=container-fluid><div class="disclaimer text-center"><div class="row mx-md-2"><div class="td-footer__left col-6 col-sm-2 order-sm-1"> </div><div class="td-footer__right col-6 col-sm-2 order-sm-3"> </div><div class="td-footer__center col-12 col-sm-8 py-2 order-sm-2"><p>Apache Openserverless™ is an effort undergoing incubation at The [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/references/actions-actionloop/index.html b/docs/reference/references/actions-actionloop/index.html
index 6b3bd13..c5195aa 100644
--- a/docs/reference/references/actions-actionloop/index.html
+++ b/docs/reference/references/actions-actionloop/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/references/actions-actionloop/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/references/actions-actionloop/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><li [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/references/actions-actionloop/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Building your runtime"><meta property="og:description" content="Developing a new Runtime with the ActionLoop proxy The OpenWhisk and OpenServerless runtime specification defines the expected behavior of an OpenWhisk and OpenServerless runtime; you can choose [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/references/actions-actionloop/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Building your runtime"><meta property="og:description" content="Developing a new Runtime with the ActionLoop proxy The OpenWhisk and OpenServerless runtime specification defines the expected behavior of an OpenWhisk and OpenServerless runtime; you can choose [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -97,7 +97,7 @@ programming language</a>, originally developed
specifically to support the <a href=https://github.com/apache/openwhisk-runtime-go>OpenWhisk and OpenServerless Go language
runtime</a>. However, it
was written in a generic way such that it has since been adopted to
-implement OpenWhisk and Nuvolaris runtimes for Swift, PHP, Python, Rust,
+implement OpenWhisk and OpenServerless runtimes for Swift, PHP, Python, Rust,
Java, Ruby and Crystal. Even though it was developed with compiled
languages in mind it works equally well with scripting languages.</p><p>Using it, you can develop a new runtime in a fraction of the time needed
for authoring a full-fledged runtime from scratch. This is due to the
@@ -179,7 +179,7 @@ actionloop-demo-ruby-v2.6 latest df3e77c9cd8f 2 minutes ag
<code>actionloop-demo-ruby-v2.6</code>. However, despite having <code>Ruby</code> in the name,
internally it still is a <code>Python</code> language runtime which we will need to
change to one supporting <code>Ruby</code> as we continue in this tutorial.</p><h2 id=preparing-the-docker-environment>Preparing the Docker environment</h2><p>Our language runtime’s <code>Dockerfile</code> has the task of preparing an
-environment for executing OpenWhisk and Nuvolaris Actions. Using the
+environment for executing OpenWhisk and OpenServerless Actions. Using the
ActionLoop approach, we use a multistage Docker build to</p><ol><li><p>derive our OpenWhisk and OpenServerless language runtime from an existing
Docker image that has all the target language’s tools and libraries
for running functions authored in that language.</p><ul><li>In our case, we will reference the <code>ruby:2.6.2-alpine3.9</code> image
@@ -187,7 +187,7 @@ from the <a href=https://hub.docker.com/_/ruby>Official Docker Images for
Ruby</a> on Docker Hub.</li></ul></li><li><p>leverage the existing <code>openwhisk/actionlooop-v2</code> image on Docker Hub
from which we will “extract” the <em>ActionLoop</em> proxy (i.e. copy
<code>/bin/proxy</code> binary) our runtime will use to process Activation
-requests from the OpenWhisk and Nuvolaris platform and execute
+requests from the OpenWhisk and OpenServerless platform and execute
Actions by using the language’s tools and libraries from step #1.</p></li></ol><h2 id=repurpose-the-renamed-python-dockerfile-for-ruby-builds>Repurpose the renamed Python Dockerfile for Ruby builds</h2><p>Let’s edit the <code>ruby2.6/Dockerfile</code> to use the official Ruby image on
Docker Hub as our base image, instead of a Python image, and add our our
Ruby launcher script:</p><pre><code> FROM openwhisk/actionloop-v2:latest as builder
@@ -233,7 +233,7 @@ from main__ import main as main
require "./main__"
</code></pre><p><em>Note that you are free to decide the path and filename for the
function’s source code. In our examples, we chose a base filename that
-includes the word <code>"main"</code> (since it is OpenWhisk and Nuvolaris’s
+includes the word <code>"main"</code> (since it is OpenWhisk and OpenServerless
default function name) and append two underscores to better assure
uniqueness.</em></p><h4 id=open-file-descriptor-fd-3-for-function-results-output>Open File Descriptor (FD) 3 for function results output</h4><p>The <code>ActionLoop</code> proxy expects to read the results of invoking the
Action function from File Descriptor (FD) 3.</p><p>The existing Python:</p><pre><code>out = fdopen(3, "wb")
@@ -381,7 +381,7 @@ change:</p><pre><code> write_file("%s/exec" % tgt_dir, ""&qu
</code></pre><p>For an interpreted language that is all. We move the <code>src</code> folder in the
<code>bin</code>. For a compiled language instead, we may want to actually invoke
the compiler to produce the executable.</p><h2 id=debugging>Debugging</h2><p>Now that we have completed both the <code>launcher</code> and <code>compile</code> scripts, it
-is time to test them.</p><p>Here we will learn how to:</p><ol><li><p>enter in a test environment</p></li><li><p>simple smoke tests to check things work</p></li><li><p>writing the validation tests</p></li><li><p>testing the image in an actual OpenWhisk and Nuvolaris environment</p></li></ol><h3 id=entering-in-the-test-environment>Entering in the test environment</h3><p>In the starter kit, there is a <code>Makefile</code> that can help with our
+is time to test them.</p><p>Here we will learn how to:</p><ol><li><p>enter in a test environment</p></li><li><p>simple smoke tests to check things work</p></li><li><p>writing the validation tests</p></li><li><p>testing the image in an actual OpenWhisk and OpenServerless environment</p></li></ol><h3 id=entering-in-the-test-environment>Entering in the test environment</h3><p>In the starter kit, there is a <code>Makefile</code> that can help with our
development efforts.</p><p>We can build the Dockerfile using the provided Makefile. Since it has a
reference to the image we are building, let’s change it:</p><pre><code>sed -i.bak -e 's/actionloop-demo-python-v3.7/actionloop-demo-ruby-v2.6/' ruby2.6/Makefile
</code></pre><p>We should be now able to build the image and enter in it with
@@ -412,7 +412,7 @@ $ make debug
# results omitted for brevity ...
# (you should see a shell prompt of your image)
$ /bin/proxy -debug
-2019/04/08 07:47:36 OpenWhisk and Nuvolaris ActionLoop Proxy 2: starting
+2019/04/08 07:47:36 OpenWhisk and OpenServerless ActionLoop Proxy 2: starting
</code></pre><p>Now the runtime is started in debug mode, listening on port 8080, and
ready to accept Action deployments.</p><p>Open another terminal (while leaving the first one running the proxy)
and go <em>into the top-level directory of our project</em> to test the Action
@@ -427,7 +427,7 @@ $ python tools/invoke.py run '{"name":"Mike"}'
</code></pre><p>We should also see debug output from the first terminal running the
proxy (with the <code>debug</code> flag) which should have successfully processed
the <code>init</code> and <code>run</code> requests above.</p><p>The proxy’s debug output should appear something like:</p><pre><code>/proxy # /bin/proxy -debug
-2019/04/08 07:54:57 OpenWhisk and Nuvolaris ActionLoop Proxy 2: starting
+2019/04/08 07:54:57 OpenWhisk and OpenServerless ActionLoop Proxy 2: starting
2019/04/08 07:58:00 compiler: /proxy/bin/compile
2019/04/08 07:58:00 it is source code
2019/04/08 07:58:00 compiling: ./action/16/src/exec main: hello
@@ -487,7 +487,7 @@ action/2/bin/main__.rb
</code></pre><h2 id=testing>Testing</h2><p>If we have reached this point in the tutorial, the runtime is able to
run and execute a simple test action. Now we need to validate the
runtime against a set of mandatory tests both locally and within an
-OpenWhisk and Nuvolaris staging environment. Additionally, we should
+OpenWhisk and OpenServerless staging environment. Additionally, we should
author and automate additional tests for language specific features and
styles.</p><p>The <code>starter kit</code> includes two handy <code>makefiles</code> that we can leverage
for some additional tests. In the next sections, we will show how to
@@ -544,19 +544,19 @@ public cloud. So as the last step before moving forward, let’s push the
image to Docker Hub with <code>make push</code>.</p><h3 id=testing-on-openwhisk-and-openserverless>Testing on OpenWhisk and OpenServerless</h3><p>To run this test you need to configure access to OpenWhisk and OpenServerless
with <code>ops</code>. A simple way is to get access is to register a free account
in the IBM Cloud but this works also with our own deployment of
-OpenWhisk and Nuvolaris.</p><p>Edit the Makefile as we did previously:</p><pre><code>IMG=actionloop-demo-ruby-v2.6:latest
+OpenWhisk and OpenServerless.</p><p>Edit the Makefile as we did previously:</p><pre><code>IMG=actionloop-demo-ruby-v2.6:latest
ACT=hello-demo-ruby
PREFIX=docker.io/<docker username>
</code></pre><p>Also, change any reference to <code>hello.py</code> and <code>main.py</code> to <code>hello.rb</code> and
<code>main.rb</code>.</p><p>Once this is done, we can re-run the tests we executed locally on “the
real thing”.</p><p>Test single:</p><pre><code>$ make test-single
-nuv action update hello-demo-ruby hello.rb --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest --main hello
+ops action update hello-demo-ruby hello.rb --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest --main hello
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
@@ -564,25 +564,25 @@ nuv action invoke hello-demo-ruby -p name Mike -r
zip src.zip main.rb hello.rb
adding: main.rb (deflated 42%)
adding: hello.rb (deflated 42%)
-nuv action update hello-demo-ruby src.zip --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest
+ops action update hello-demo-ruby src.zip --docker docker.io/linus/actionloop-demo-ruby-v2.6:latest
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
</code></pre><p>Test binary ZIP:</p><pre><code>$ make test-bin-zip
docker run -i actionloop-demo-ruby-v2.6:latest -compile main <src.zip >bin.zip
-nuv action update hello-demo-ruby bin.zip --docker docker.io/actionloop/actionloop-demo-ruby-v2.6:latest
+ops action update hello-demo-ruby bin.zip --docker docker.io/actionloop/actionloop-demo-ruby-v2.6:latest
ok: updated action hello-demo-ruby
-nuv action invoke hello-demo-ruby -r
+ops action invoke hello-demo-ruby -r
{
"greeting": "Hello stranger!"
}
-nuv action invoke hello-demo-ruby -p name Mike -r
+ops action invoke hello-demo-ruby -p name Mike -r
{
"greeting": "Hello Mike!"
}
@@ -622,9 +622,9 @@ runtime.actionContainers.ActionLoopPythoRubyTests > runtime proxy should echo
BUILD SUCCESSFUL in 55s
</code></pre><p>Big congratulations are in order having reached this point successfully.
At this point, our runtime should be ready to run on any OpenWhisk and
-Nuvolaris platform and also can be submitted for consideration to be
-included in the Apache OpenWhisk and Nuvolaris project.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+OpenServerless platform and also can be submitted for consideration to be
+included in the Apache OpenWhisk and OpenServerless project.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/references/actions-new/_print/index.html b/docs/reference/references/actions-new/_print/index.html
index 147820b..af9ce76 100644
--- a/docs/reference/references/actions-new/_print/index.html
+++ b/docs/reference/references/actions-new/_print/index.html
@@ -3,9 +3,9 @@
The platform is extensible and you can add new languages or runtimes (with custom packages and third-party dependencies)
This guide describes the contract a runtime must satisfy. However all the OpenServerless runtimes are implemented the using the ActionLoop Proxy."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Runtimes under the hood"><meta itemprop=description content="Adding Action Language Runtimes OpenWhisk and OpenServerless supports several languages and runtimes but there may be other languages or runtimes that are important for you [...]
The platform is extensible and you can add new languages or runtimes (with custom packages and third-party dependencies)
-This guide describes the contract a runtime must satisfy. However all the OpenServerless runtimes are implemented the using the ActionLoop Proxy."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1827"><meta name=twitter:card content="summary"><meta name=twitter:title content="Runtimes under the hood"><meta name=twitter:description content="Adding Action Language Runtimes OpenWhisk and OpenServerless supports several languages and runtimes [...]
+This guide describes the contract a runtime must satisfy. However all the OpenServerless runtimes are implemented the using the ActionLoop Proxy."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1827"><meta name=twitter:card content="summary"><meta name=twitter:title content="Runtimes under the hood"><meta name=twitter:description content="Adding Action Language Runtimes OpenWhisk and OpenServerless supports several languages and runtimes [...]
The platform is extensible and you can add new languages or runtimes (with custom packages and third-party dependencies)
-This guide describes the contract a runtime must satisfy. However all the OpenServerless runtimes are implemented the using the ActionLoop Proxy."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=style [...]
+This guide describes the contract a runtime must satisfy. However all the OpenServerless runtimes are implemented the using the ActionLoop Proxy."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=style [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/references/actions-new/>Return to the regular view of this page</a>.</p></div><h1 class=title>Runtimes under the hood</h1><ul></ul><div class=content><h1 id=adding-action-language-runtimes>Adding Action Language Runtimes</h1><p>OpenWhisk and OpenServerless supports <a href=/docs/reference/references/actions-new/#index-runtimes.adoc>several languages and
runtimes</a> but there may be other languages or
runtimes that are important for your organization, and for which you
@@ -111,8 +111,8 @@ object providing a new activation context and the input parameters for
the function. There may be many activations of the same function against
the same proxy (viz. container). Currently, the activations are
guaranteed not to overlap — that is, at any given time, there is at most
-one request to <code>/run</code> from the OpenWhisk and Nuvolaris platform.</p><p>The route must accept a JSON object and respond with a JSON object,
-otherwise the OpenWhisk and Nuvolaris platform will treat the activation
+one request to <code>/run</code> from the OpenWhisk and OpenServerless platform.</p><p>The route must accept a JSON object and respond with a JSON object,
+otherwise the OpenWhisk and OpenServerless platform will treat the activation
as a failure and proceed to destroy the container. The JSON object
provided by the platform follows the following schema:</p><pre><code>{
"value": JSON,
@@ -125,14 +125,14 @@ provided by the platform follows the following schema:</p><pre><code>{
"deadline": Number
}
</code></pre><ul><li><p><code>value</code> is a JSON object and contains all the parameters for the
-function activation.</p></li><li><p><code>namespace</code> is the OpenWhisk and Nuvolaris namespace for the action
+function activation.</p></li><li><p><code>namespace</code> is the OpenWhisk and OpenServerless namespace for the action
(e.g., <code>whisk-system</code>).</p></li><li><p><code>action_name</code> is the <a href=reference.md#fully-qualified-names>fully qualified
name</a> of the action.</p></li><li><p><code>activation_id</code> is a unique ID for this activation.</p></li><li><p><code>transaction_id</code> is a unique ID for the request of which this
activation is part of.</p></li><li><p><code>deadline</code> is the deadline for the function.</p></li><li><p><code>api_key</code> is the API key used to invoke the action.</p></li></ul><p>The <code>value</code> is the function parameters. The rest of the properties
become part of the activation context which is a set of environment
variables constructed by capitalizing each of the property names, and
prefixing the result with <code>__OW_</code>. Additionally, the context must define
-<code>__OW_API_HOST</code> whose value is the OpenWhisk and Nuvolaris API host.
+<code>__OW_API_HOST</code> whose value is the OpenWhisk and OpenServerless API host.
This value is currently provided as an environment variable defined at
container startup time and hence already available in the context.</p><p><strong>Successful activation:</strong> The route must respond with <code>200 OK</code> if the
activation is successful and the function has produced a JSON object as
@@ -141,7 +141,7 @@ activation</a>.</p><p><strong>Failed activation:</strong> Any response other tha
activation error. The response from the handler must be a JSON object
with a single field called <code>error</code> describing the failure. The value of
the error field may be any valid JSON value. Should the proxy fail to
-respond with a JSON object, the OpenWhisk and Nuvolaris platform will
+respond with a JSON object, the OpenWhisk and OpenServerless platform will
treat the failure as an uncaught exception. These two failures modes are
distinguished by the value of the <code>response.status</code> in the activation
record which is <code>application error</code> if the proxy returned an <code>error</code>
diff --git a/docs/reference/references/actions-new/index.html b/docs/reference/references/actions-new/index.html
index 018bdd8..3b74d5e 100644
--- a/docs/reference/references/actions-new/index.html
+++ b/docs/reference/references/actions-new/index.html
@@ -3,9 +3,9 @@
The platform is extensible and you can add new languages or runtimes (with custom packages and third-party dependencies)
This guide describes the contract a runtime must satisfy. However all the OpenServerless runtimes are implemented the using the ActionLoop Proxy."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Runtimes under the hood"><meta itemprop=description content="Adding Action Language Runtimes OpenWhisk and OpenServerless supports several languages and runtimes but there may be other languages or runtimes that are important for you [...]
The platform is extensible and you can add new languages or runtimes (with custom packages and third-party dependencies)
-This guide describes the contract a runtime must satisfy. However all the OpenServerless runtimes are implemented the using the ActionLoop Proxy."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1827"><meta name=twitter:card content="summary"><meta name=twitter:title content="Runtimes under the hood"><meta name=twitter:description content="Adding Action Language Runtimes OpenWhisk and OpenServerless supports several languages and runtimes [...]
+This guide describes the contract a runtime must satisfy. However all the OpenServerless runtimes are implemented the using the ActionLoop Proxy."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1827"><meta name=twitter:card content="summary"><meta name=twitter:title content="Runtimes under the hood"><meta name=twitter:description content="Adding Action Language Runtimes OpenWhisk and OpenServerless supports several languages and runtimes [...]
The platform is extensible and you can add new languages or runtimes (with custom packages and third-party dependencies)
-This guide describes the contract a runtime must satisfy. However all the OpenServerless runtimes are implemented the using the ActionLoop Proxy."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=style [...]
+This guide describes the contract a runtime must satisfy. However all the OpenServerless runtimes are implemented the using the ActionLoop Proxy."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=style [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -195,8 +195,8 @@ object providing a new activation context and the input parameters for
the function. There may be many activations of the same function against
the same proxy (viz. container). Currently, the activations are
guaranteed not to overlap — that is, at any given time, there is at most
-one request to <code>/run</code> from the OpenWhisk and Nuvolaris platform.</p><p>The route must accept a JSON object and respond with a JSON object,
-otherwise the OpenWhisk and Nuvolaris platform will treat the activation
+one request to <code>/run</code> from the OpenWhisk and OpenServerless platform.</p><p>The route must accept a JSON object and respond with a JSON object,
+otherwise the OpenWhisk and OpenServerless platform will treat the activation
as a failure and proceed to destroy the container. The JSON object
provided by the platform follows the following schema:</p><pre><code>{
"value": JSON,
@@ -209,14 +209,14 @@ provided by the platform follows the following schema:</p><pre><code>{
"deadline": Number
}
</code></pre><ul><li><p><code>value</code> is a JSON object and contains all the parameters for the
-function activation.</p></li><li><p><code>namespace</code> is the OpenWhisk and Nuvolaris namespace for the action
+function activation.</p></li><li><p><code>namespace</code> is the OpenWhisk and OpenServerless namespace for the action
(e.g., <code>whisk-system</code>).</p></li><li><p><code>action_name</code> is the <a href=reference.md#fully-qualified-names>fully qualified
name</a> of the action.</p></li><li><p><code>activation_id</code> is a unique ID for this activation.</p></li><li><p><code>transaction_id</code> is a unique ID for the request of which this
activation is part of.</p></li><li><p><code>deadline</code> is the deadline for the function.</p></li><li><p><code>api_key</code> is the API key used to invoke the action.</p></li></ul><p>The <code>value</code> is the function parameters. The rest of the properties
become part of the activation context which is a set of environment
variables constructed by capitalizing each of the property names, and
prefixing the result with <code>__OW_</code>. Additionally, the context must define
-<code>__OW_API_HOST</code> whose value is the OpenWhisk and Nuvolaris API host.
+<code>__OW_API_HOST</code> whose value is the OpenWhisk and OpenServerless API host.
This value is currently provided as an environment variable defined at
container startup time and hence already available in the context.</p><p><strong>Successful activation:</strong> The route must respond with <code>200 OK</code> if the
activation is successful and the function has produced a JSON object as
@@ -225,7 +225,7 @@ activation</a>.</p><p><strong>Failed activation:</strong> Any response other tha
activation error. The response from the handler must be a JSON object
with a single field called <code>error</code> describing the failure. The value of
the error field may be any valid JSON value. Should the proxy fail to
-respond with a JSON object, the OpenWhisk and Nuvolaris platform will
+respond with a JSON object, the OpenWhisk and OpenServerless platform will
treat the failure as an uncaught exception. These two failures modes are
distinguished by the value of the <code>response.status</code> in the activation
record which is <code>application error</code> if the proxy returned an <code>error</code>
@@ -256,7 +256,7 @@ generic integration test as part of its basic system tests. This
integration test will require a <a href=/docs/reference/references/actions-new/#the-test-action>test function</a> to be
available so that the test harness can create, invoke, and delete the
action.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/references/advanced-cli/_print/index.html b/docs/reference/references/advanced-cli/_print/index.html
index 5deeb4e..8f17189 100644
--- a/docs/reference/references/advanced-cli/_print/index.html
+++ b/docs/reference/references/advanced-cli/_print/index.html
@@ -11,13 +11,13 @@ We can see here some advanced uses of ops.
OpenServerless access is usually configure logging into it with the ops -login.
You can also configure access directly using the ops -wsk command.
There are two required properties to configure:
-API host (name or IP address) for the OpenWhisk and OpenServerless deployment you want to use."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="347"><meta name=twitter:card content="summary"><meta name=twitter:title content="Advanced CLI"><meta name=twitter:description content="OpenServerless CLI OpenServerless offers a powerful command line interface named ops which extends and embeds the OpenWhisk wsk.
+API host (name or IP address) for the OpenWhisk and OpenServerless deployment you want to use."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="347"><meta name=twitter:card content="summary"><meta name=twitter:title content="Advanced CLI"><meta name=twitter:description content="OpenServerless CLI OpenServerless offers a powerful command line interface named ops which extends and embeds the OpenWhisk wsk.
You can download it from here.
We can see here some advanced uses of ops.
OpenServerless access is usually configure logging into it with the ops -login.
You can also configure access directly using the ops -wsk command.
There are two required properties to configure:
-API host (name or IP address) for the OpenWhisk and OpenServerless deployment you want to use."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-sec [...]
+API host (name or IP address) for the OpenWhisk and OpenServerless deployment you want to use."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-sec [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/references/advanced-cli/>Return to the regular view of this page</a>.</p></div><h1 class=title>Advanced CLI</h1><ul></ul><div class=content><h1 id=openserverless-cli>OpenServerless CLI</h1><p>OpenServerless offers a powerful command line interface named <code>ops</code> which
extends and embeds the OpenWhisk <code>wsk</code>.</p><p>You can download it from <a href=/docs/reference/references/advanced-cli/#installation:download.adoc>here</a>.</p><p>We can see here some advanced uses of <code>ops</code>.</p><p>OpenServerless access is usually configure logging into it with the
<code>ops -login</code>.</p><p>You can also configure access directly using the <code>ops -wsk</code> command.</p><p>There are two required properties to configure:</p><ol><li><p><strong>API host</strong> (name or IP address) for the OpenWhisk and OpenServerless
diff --git a/docs/reference/references/advanced-cli/index.html b/docs/reference/references/advanced-cli/index.html
index 12b4d19..04afec6 100644
--- a/docs/reference/references/advanced-cli/index.html
+++ b/docs/reference/references/advanced-cli/index.html
@@ -11,13 +11,13 @@ We can see here some advanced uses of ops.
OpenServerless access is usually configure logging into it with the ops -login.
You can also configure access directly using the ops -wsk command.
There are two required properties to configure:
-API host (name or IP address) for the OpenWhisk and OpenServerless deployment you want to use."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="347"><meta name=twitter:card content="summary"><meta name=twitter:title content="Advanced CLI"><meta name=twitter:description content="OpenServerless CLI OpenServerless offers a powerful command line interface named ops which extends and embeds the OpenWhisk wsk.
+API host (name or IP address) for the OpenWhisk and OpenServerless deployment you want to use."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="347"><meta name=twitter:card content="summary"><meta name=twitter:title content="Advanced CLI"><meta name=twitter:description content="OpenServerless CLI OpenServerless offers a powerful command line interface named ops which extends and embeds the OpenWhisk wsk.
You can download it from here.
We can see here some advanced uses of ops.
OpenServerless access is usually configure logging into it with the ops -login.
You can also configure access directly using the ops -wsk command.
There are two required properties to configure:
-API host (name or IP address) for the OpenWhisk and OpenServerless deployment you want to use."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-sec [...]
+API host (name or IP address) for the OpenWhisk and OpenServerless deployment you want to use."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-sec [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -125,7 +125,7 @@ provides default client certificate configuration which deployment
process generated, then you can refer to below steps to use client
certificate:</p><pre><code>ops -wsk property set --cert <client_cert_path> --key <client_key_path>
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/references/index.html b/docs/reference/references/index.html
index 27b9daa..0b7e567 100644
--- a/docs/reference/references/index.html
+++ b/docs/reference/references/index.html
@@ -9,12 +9,12 @@ Naming and Limits
Advanced CLI
Rest API
Runtimes under the hood
-Building your runtime"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="24"><meta name=twitter:card content="summary"><meta name=twitter:title content="Advanced"><meta name=twitter:description content="Advanced Reference Guides You can find advanced reference documentations here:
+Building your runtime"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="24"><meta name=twitter:card content="summary"><meta name=twitter:title content="Advanced"><meta name=twitter:description content="Advanced Reference Guides You can find advanced reference documentations here:
Naming and Limits
Advanced CLI
Rest API
Runtimes under the hood
-Building your runtime"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark>< [...]
+Building your runtime"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark>< [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -100,7 +100,7 @@ Building your runtime"><link rel=preload href=/scss/main.min.19cc757d7643534ced6
<a href="https://github.com/apache/openserverless/issues/issues/new?title=Advanced" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
<a id=print href=/docs/reference/references/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class="breadcrumb-item active" aria-current=page>Advanced</li></ol></nav><div class=td-content><h1>Advanced</ [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/references/naming-limits/_print/index.html b/docs/reference/references/naming-limits/_print/index.html
index 4010ec3..e666a79 100644
--- a/docs/reference/references/naming-limits/_print/index.html
+++ b/docs/reference/references/naming-limits/_print/index.html
@@ -5,10 +5,10 @@ Packages can contain actions and feeds. A package cannot contain another package
In OpenServerless a namespace corresponds to an user. You can create users with the admin subcommand of the CLI."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Naming And Limits"><meta itemprop=description content="System details The following sections provide more details about the OpenWhisk and OpenServerless system.
Entities Namespaces and packages OpenWhisk and OpenServerless actions, triggers, and rules belong in a namespace, and optionally a package.
Packages can contain actions and feeds. A package cannot contain another package, so package nesting is not allowed. Also, entities do not have to be contained in a package.
-In OpenServerless a namespace corresponds to an user. You can create users with the admin subcommand of the CLI."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1256"><meta name=twitter:card content="summary"><meta name=twitter:title content="Naming And Limits"><meta name=twitter:description content="System details The following sections provide more details about the OpenWhisk and OpenServerless system.
+In OpenServerless a namespace corresponds to an user. You can create users with the admin subcommand of the CLI."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1256"><meta name=twitter:card content="summary"><meta name=twitter:title content="Naming And Limits"><meta name=twitter:description content="System details The following sections provide more details about the OpenWhisk and OpenServerless system.
Entities Namespaces and packages OpenWhisk and OpenServerless actions, triggers, and rules belong in a namespace, and optionally a package.
Packages can contain actions and feeds. A package cannot contain another package, so package nesting is not allowed. Also, entities do not have to be contained in a package.
-In OpenServerless a namespace corresponds to an user. You can create users with the admin subcommand of the CLI."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head> [...]
+In OpenServerless a namespace corresponds to an user. You can create users with the admin subcommand of the CLI."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head> [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/references/naming-limits/>Return to the regular view of this page</a>.</p></div><h1 class=title>Naming And Limits</h1><ul></ul><div class=content><h1 id=system-details>System details</h1><p>The following sections provide more details about the OpenWhisk and
OpenServerless system.</p><h2 id=entities>Entities</h2><h3 id=namespaces-and-packages>Namespaces and packages</h3><p>OpenWhisk and OpenServerless actions, triggers, and rules belong in a
namespace, and optionally a package.</p><p>Packages can contain actions and feeds. A package cannot contain another
@@ -23,7 +23,7 @@ with a <code>/</code>.</p><p>For convenience, the namespace can be left off if i
<em>default namespace</em>.</p><p>For example, consider a user whose default namespace is <code>/myOrg</code>.
Following are examples of the fully qualified names of a number of
entities and their aliases.</p><table><col style=width:20%><col style=width:20%><col style=width:20%><col style=width:20%><col style=width:20%><thead><tr class=header><th style=text-align:left>Fully qualified name</th><th style=text-align:left>Alias</th><th style=text-align:left>Namespace</th><th style=text-align:left>Package</th><th style=text-align:left>Name</th></tr></thead><tbody><tr class=odd><td style=text-align:left><p><code>/whisk.system/cloudant/read</code></p></td><td style=tex [...]
-Nuvolaris CLI, among other places.</p><h3 id=entity-names>Entity names</h3><p>The names of all entities, including actions, triggers, rules, packages,
+OpenServerless CLI, among other places.</p><h3 id=entity-names>Entity names</h3><p>The names of all entities, including actions, triggers, rules, packages,
and namespaces, are a sequence of characters that follow the following
format:</p><ul><li><p>The first character must be an alphanumeric character, or an
underscore.</p></li><li><p>The subsequent characters can be alphanumeric, spaces, or any of the
diff --git a/docs/reference/references/naming-limits/index.html b/docs/reference/references/naming-limits/index.html
index 1b7496c..04706b2 100644
--- a/docs/reference/references/naming-limits/index.html
+++ b/docs/reference/references/naming-limits/index.html
@@ -5,10 +5,10 @@ Packages can contain actions and feeds. A package cannot contain another package
In OpenServerless a namespace corresponds to an user. You can create users with the admin subcommand of the CLI."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Naming And Limits"><meta itemprop=description content="System details The following sections provide more details about the OpenWhisk and OpenServerless system.
Entities Namespaces and packages OpenWhisk and OpenServerless actions, triggers, and rules belong in a namespace, and optionally a package.
Packages can contain actions and feeds. A package cannot contain another package, so package nesting is not allowed. Also, entities do not have to be contained in a package.
-In OpenServerless a namespace corresponds to an user. You can create users with the admin subcommand of the CLI."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1256"><meta name=twitter:card content="summary"><meta name=twitter:title content="Naming And Limits"><meta name=twitter:description content="System details The following sections provide more details about the OpenWhisk and OpenServerless system.
+In OpenServerless a namespace corresponds to an user. You can create users with the admin subcommand of the CLI."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1256"><meta name=twitter:card content="summary"><meta name=twitter:title content="Naming And Limits"><meta name=twitter:description content="System details The following sections provide more details about the OpenWhisk and OpenServerless system.
Entities Namespaces and packages OpenWhisk and OpenServerless actions, triggers, and rules belong in a namespace, and optionally a package.
Packages can contain actions and feeds. A package cannot contain another package, so package nesting is not allowed. Also, entities do not have to be contained in a package.
-In OpenServerless a namespace corresponds to an user. You can create users with the admin subcommand of the CLI."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head> [...]
+In OpenServerless a namespace corresponds to an user. You can create users with the admin subcommand of the CLI."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head> [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -107,7 +107,7 @@ with a <code>/</code>.</p><p>For convenience, the namespace can be left off if i
<em>default namespace</em>.</p><p>For example, consider a user whose default namespace is <code>/myOrg</code>.
Following are examples of the fully qualified names of a number of
entities and their aliases.</p><table><col style=width:20%><col style=width:20%><col style=width:20%><col style=width:20%><col style=width:20%><thead><tr class=header><th style=text-align:left>Fully qualified name</th><th style=text-align:left>Alias</th><th style=text-align:left>Namespace</th><th style=text-align:left>Package</th><th style=text-align:left>Name</th></tr></thead><tbody><tr class=odd><td style=text-align:left><p><code>/whisk.system/cloudant/read</code></p></td><td style=tex [...]
-Nuvolaris CLI, among other places.</p><h3 id=entity-names>Entity names</h3><p>The names of all entities, including actions, triggers, rules, packages,
+OpenServerless CLI, among other places.</p><h3 id=entity-names>Entity names</h3><p>The names of all entities, including actions, triggers, rules, packages,
and namespaces, are a sequence of characters that follow the following
format:</p><ul><li><p>The first character must be an alphanumeric character, or an
underscore.</p></li><li><p>The subsequent characters can be alphanumeric, spaces, or any of the
@@ -166,7 +166,7 @@ table below.</p><table><col style=width:14%><col style=width:26%><col style=widt
per namespace per minute</p></td><td style=text-align:left><p>per user</p></td><td style=text-align:left><p>number</p></td><td style=text-align:left><p>60</p></td></tr></tbody></table><h3 id=triggers-per-minute-fixed-60>Triggers per minute (Fixed: 60)</h3><ul><li><p>The rate limit N is set to 60 and limits the number of triggers that
may be fired in one minute windows.</p></li><li><p>A user cannot change this limit when creating the trigger.</p></li><li><p>A CLI or API call that exceeds this limit receives an error code
corresponding to HTTP status code <code>429: TOO MANY REQUESTS</code>.</p></li></ul><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/references/rest_api/_print/index.html b/docs/reference/references/rest_api/_print/index.html
index 3fd147a..647b0c7 100644
--- a/docs/reference/references/rest_api/_print/index.html
+++ b/docs/reference/references/rest_api/_print/index.html
@@ -1,14 +1,14 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/references/rest_api/><link rel=alternate type=application/rss+xml href=/docs/reference/references/rest_api/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/references/rest_api/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Rest API"><meta property="og:description" content="Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris After your OpenWhisk and OpenServerlesss environment is enabled, you can use it with your web apps or mobile apps with REST API calls.
-For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and Nuvolaris API documentation.
+For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and OpenServerless API documentation.
All the capabilities in the system are available through a REST API. There are collection and entity endpoints for actions, triggers, rules, packages, activations, and namespaces."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Rest API"><meta itemprop=description content="Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris After your OpenWhisk and OpenServerlesss environment is enabled, you can use it with your web [...]
-For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and Nuvolaris API documentation.
-All the capabilities in the system are available through a REST API. There are collection and entity endpoints for actions, triggers, rules, packages, activations, and namespaces."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1501"><meta name=twitter:card content="summary"><meta name=twitter:title content="Rest API"><meta name=twitter:description content="Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris After your OpenWhisk a [...]
-For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and Nuvolaris API documentation.
-All the capabilities in the system are available through a REST API. There are collection and entity endpoints for actions, triggers, rules, packages, activations, and namespaces."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3 [...]
+For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and OpenServerless API documentation.
+All the capabilities in the system are available through a REST API. There are collection and entity endpoints for actions, triggers, rules, packages, activations, and namespaces."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1501"><meta name=twitter:card content="summary"><meta name=twitter:title content="Rest API"><meta name=twitter:description content="Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris After your OpenWhisk a [...]
+For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and OpenServerless API documentation.
+All the capabilities in the system are available through a REST API. There are collection and entity endpoints for actions, triggers, rules, packages, activations, and namespaces."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3 [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/references/rest_api/>Return to the regular view of this page</a>.</p></div><h1 class=title>Rest API</h1><ul></ul><div class=content><h1 id=using-rest-apis-with-openwhisk-and-nuvoopenserverlesslaris>Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris</h1><p>After your OpenWhisk and OpenServerlesss environment is enabled, you can use
it with your web apps or mobile apps with REST API calls.</p><p>For more details about the APIs for actions, activations, packages,
-rules, and triggers, see the <a href="http://petstore.swagger.io/?url=https://raw.githubusercontent.com/openwhisk/openwhisk/master/core/controller/src/main/resources/apiv1swagger.json">OpenWhisk and Nuvolaris API
+rules, and triggers, see the <a href="http://petstore.swagger.io/?url=https://raw.githubusercontent.com/openwhisk/openwhisk/master/core/controller/src/main/resources/apiv1swagger.json">OpenWhisk and OpenServerless API
documentation</a>.</p><p>All the capabilities in the system are available through a REST API.
There are collection and entity endpoints for actions, triggers, rules,
packages, activations, and namespaces.</p><p>These are the collection endpoints:</p><pre><code>https://$APIHOST/api/v1/namespaces
@@ -36,7 +36,7 @@ enable or disable rules.</p><p>All APIs are protected with HTTP Basic authentica
authentication. The Basic authentication credentials are in the <code>AUTH</code>
property in your <code>~/.nuvprops</code> file, delimited by a colon. You can also
retrieve these credentials using the CLI running
-<code>nuv property get --auth</code>.</p><p>The following is an example that uses the <a href=https://curl.haxx.se>cURL</a>
+<code>ops property get --auth</code>.</p><p>The following is an example that uses the <a href=https://curl.haxx.se>cURL</a>
command tool to get the list of all packages in the <code>whisk.system</code>
namespace:</p><pre><code>curl -u USERNAME:PASSWORD https://$APIHOST/api/v1/namespaces/whisk.system/packages
@@ -66,9 +66,9 @@ allowed (that is, Access-Control-Allow-Methods is
<code>Authorization, Origin, X-Requested-With, Content-Type, Accept, User-Agent</code>.</p><p><strong>Attention:</strong> Because OpenWhisk and OpenServerless currently supports only
one key per namespace, it is not recommended to use CORS beyond simple
experiments. Use <a href=/docs/reference/references/rest_api/#webactions.adoc>Web Actions</a> to expose your actions
-to the public and not use the OpenWhisk and Nuvolaris authorization key
+to the public and not use the OpenWhisk and OpenServerless authorization key
for client applications that require CORS.</p><h2 id=using-the-cli-verbose-mode>Using the CLI verbose mode</h2><p>The OpenWhisk and OpenServerless CLI is an interface to the OpenWhisk and
-Nuvolaris REST API. You can run the CLI in verbose mode with the flag
+OpenServerless REST API. You can run the CLI in verbose mode with the flag
<code>-v</code>, this will print truncated information about the HTTP request and
response. To print all information use the flag <code>-d</code> for debug.</p><p><strong>Note:</strong> HTTP request and response bodies will only be truncated if
they exceed 1000 bytes.</p><p>Let’s try getting the namespace value for the current user.</p><pre><code>ops namespace list -v
@@ -81,7 +81,7 @@ Req Headers
"Basic XXXYYYY"
],
"User-Agent": [
- "OpenWhisk and Nuvolaris-CLI/1.0 (2017-08-10T20:09:30+00:00)"
+ "OpenWhisk and OpenServerless-CLI/1.0 (2017-08-10T20:09:30+00:00)"
]
}
RESPONSE:Got response with code 200
@@ -101,7 +101,7 @@ the HTTP request, it performs a HTTP method <code>GET</code> on the URL
Authorization header <code>Basic XXXYYYY</code>. Notice that the authorization
value is your base64-encoded OpenWhisk and OpenServerless authorization
string. The response is of content type <code>application/json</code>.</p><h2 id=actions>Actions</h2><p><strong>Note:</strong> In the examples that follow, <code>$AUTH</code> and <code>$APIHOST</code> represent
-environment variables set respectively to your OpenWhisk and Nuvolaris
+environment variables set respectively to your OpenWhisk and OpenServerless
authorization key and API host.</p><p>To create or update an action send a HTTP request with method <code>PUT</code> on
the the actions collection. For example, to create a <code>nodejs:6</code> action
with the name <code>hello</code> using a single file content use the following:</p><pre><code>curl -u $AUTH -d '{"namespace":"_","name":"hello","exec":{"kind":"nodejs:6","code":"function main(params) { return {payload:\"Hello \"+params.name}}"}}' -X PUT -H "Content-Type: application/json" https://$APIHOST/api/v1/namespaces/_/actions/hello?overwrite=true
@@ -158,7 +158,7 @@ on the action</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/a
-X PUT -H "Content-Type: application/json" \
-d '{"namespace":"_","name":"hello","exec":{"kind":"nodejs:6","code":"function main(params) { return {payload:\"Hello \"+params.name}}"},"annotations":[{"key":"web-export","value":true},{"key":"raw-http","value":false},{"key":"final","value":true}]}'
</code></pre><p>You can now invoke this action as a public URL with no OpenWhisk and
-Nuvolaris authorization. Try invoking using the web action public URL
+OpenServerless authorization. Try invoking using the web action public URL
including an optional extension such as <code>.json</code> or <code>.http</code> for example
at the end of the URL.</p><pre><code>curl https://$APIHOST/api/v1/web/john@example.com_dev/default/hello.json?name=John
@@ -168,7 +168,7 @@ at the end of the URL.</p><pre><code>curl https://$APIHOST/api/v1/web/john@examp
</code></pre><p>Note that this example source code will not work with <code>.http</code>, see <a href=webactions.md>web
actions</a> documentation on how to modify.</p><h2 id=sequences>Sequences</h2><p>To create an action sequence, you need to create it by providing the
names of the actions that compose the sequence in the desired order, so
-the output from the first action is passed as input to the next action.</p><p>$ nuv action create sequenceAction –sequence
+the output from the first action is passed as input to the next action.</p><p>$ ops action create sequenceAction –sequence
/whisk-system/utils/split,/whisk-system/utils/sort</p><p>Create a sequence with the actions <code>/whisk-system/utils/split</code> and
<code>/whisk-system/utils/sort</code>.</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/actions/sequenceAction?overwrite=true \
-X PUT -H "Content-Type: application/json" \
diff --git a/docs/reference/references/rest_api/index.html b/docs/reference/references/rest_api/index.html
index c5eb6d1..b2a7707 100644
--- a/docs/reference/references/rest_api/index.html
+++ b/docs/reference/references/rest_api/index.html
@@ -1,11 +1,11 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/references/rest_api/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/references/rest_api/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-i [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/references/rest_api/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Rest API"><meta property="og:description" content="Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris After your OpenWhisk and OpenServerlesss environment is enabled, you can use it with your web apps or mobile apps with REST API calls.
-For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and Nuvolaris API documentation.
+For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and OpenServerless API documentation.
All the capabilities in the system are available through a REST API. There are collection and entity endpoints for actions, triggers, rules, packages, activations, and namespaces."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Rest API"><meta itemprop=description content="Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris After your OpenWhisk and OpenServerlesss environment is enabled, you can use it with your web [...]
-For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and Nuvolaris API documentation.
-All the capabilities in the system are available through a REST API. There are collection and entity endpoints for actions, triggers, rules, packages, activations, and namespaces."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="1501"><meta name=twitter:card content="summary"><meta name=twitter:title content="Rest API"><meta name=twitter:description content="Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris After your OpenWhisk a [...]
-For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and Nuvolaris API documentation.
-All the capabilities in the system are available through a REST API. There are collection and entity endpoints for actions, triggers, rules, packages, activations, and namespaces."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3 [...]
+For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and OpenServerless API documentation.
+All the capabilities in the system are available through a REST API. There are collection and entity endpoints for actions, triggers, rules, packages, activations, and namespaces."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="1501"><meta name=twitter:card content="summary"><meta name=twitter:title content="Rest API"><meta name=twitter:description content="Using REST APIs with OpenWhisk and NuvoOpenServerlesslaris After your OpenWhisk a [...]
+For more details about the APIs for actions, activations, packages, rules, and triggers, see the OpenWhisk and OpenServerless API documentation.
+All the capabilities in the system are available through a REST API. There are collection and entity endpoints for actions, triggers, rules, packages, activations, and namespaces."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3 [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -92,7 +92,7 @@ All the capabilities in the system are available through a REST API. There are c
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
<a id=print href=/docs/reference/references/rest_api/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#using-the-cli-verbose-mode>Using the CLI verbose mode</a></li><li><a href=#actions>Actions</a></li><li><a href=#annotations-and-web-actions>Annotations and Web Actions</a></li><li><a href=#sequences>Sequences</a></li><li><a href=#triggers>Triggers</a></li><li><a href=#rules>Rules</a></li><li><a href=# [...]
it with your web apps or mobile apps with REST API calls.</p><p>For more details about the APIs for actions, activations, packages,
-rules, and triggers, see the <a href="http://petstore.swagger.io/?url=https://raw.githubusercontent.com/openwhisk/openwhisk/master/core/controller/src/main/resources/apiv1swagger.json">OpenWhisk and Nuvolaris API
+rules, and triggers, see the <a href="http://petstore.swagger.io/?url=https://raw.githubusercontent.com/openwhisk/openwhisk/master/core/controller/src/main/resources/apiv1swagger.json">OpenWhisk and OpenServerless API
documentation</a>.</p><p>All the capabilities in the system are available through a REST API.
There are collection and entity endpoints for actions, triggers, rules,
packages, activations, and namespaces.</p><p>These are the collection endpoints:</p><pre><code>https://$APIHOST/api/v1/namespaces
@@ -120,7 +120,7 @@ enable or disable rules.</p><p>All APIs are protected with HTTP Basic authentica
authentication. The Basic authentication credentials are in the <code>AUTH</code>
property in your <code>~/.nuvprops</code> file, delimited by a colon. You can also
retrieve these credentials using the CLI running
-<code>nuv property get --auth</code>.</p><p>The following is an example that uses the <a href=https://curl.haxx.se>cURL</a>
+<code>ops property get --auth</code>.</p><p>The following is an example that uses the <a href=https://curl.haxx.se>cURL</a>
command tool to get the list of all packages in the <code>whisk.system</code>
namespace:</p><pre><code>curl -u USERNAME:PASSWORD https://$APIHOST/api/v1/namespaces/whisk.system/packages
@@ -150,9 +150,9 @@ allowed (that is, Access-Control-Allow-Methods is
<code>Authorization, Origin, X-Requested-With, Content-Type, Accept, User-Agent</code>.</p><p><strong>Attention:</strong> Because OpenWhisk and OpenServerless currently supports only
one key per namespace, it is not recommended to use CORS beyond simple
experiments. Use <a href=/docs/reference/references/rest_api/#webactions.adoc>Web Actions</a> to expose your actions
-to the public and not use the OpenWhisk and Nuvolaris authorization key
+to the public and not use the OpenWhisk and OpenServerless authorization key
for client applications that require CORS.</p><h2 id=using-the-cli-verbose-mode>Using the CLI verbose mode</h2><p>The OpenWhisk and OpenServerless CLI is an interface to the OpenWhisk and
-Nuvolaris REST API. You can run the CLI in verbose mode with the flag
+OpenServerless REST API. You can run the CLI in verbose mode with the flag
<code>-v</code>, this will print truncated information about the HTTP request and
response. To print all information use the flag <code>-d</code> for debug.</p><p><strong>Note:</strong> HTTP request and response bodies will only be truncated if
they exceed 1000 bytes.</p><p>Let’s try getting the namespace value for the current user.</p><pre><code>ops namespace list -v
@@ -165,7 +165,7 @@ Req Headers
"Basic XXXYYYY"
],
"User-Agent": [
- "OpenWhisk and Nuvolaris-CLI/1.0 (2017-08-10T20:09:30+00:00)"
+ "OpenWhisk and OpenServerless-CLI/1.0 (2017-08-10T20:09:30+00:00)"
]
}
RESPONSE:Got response with code 200
@@ -185,7 +185,7 @@ the HTTP request, it performs a HTTP method <code>GET</code> on the URL
Authorization header <code>Basic XXXYYYY</code>. Notice that the authorization
value is your base64-encoded OpenWhisk and OpenServerless authorization
string. The response is of content type <code>application/json</code>.</p><h2 id=actions>Actions</h2><p><strong>Note:</strong> In the examples that follow, <code>$AUTH</code> and <code>$APIHOST</code> represent
-environment variables set respectively to your OpenWhisk and Nuvolaris
+environment variables set respectively to your OpenWhisk and OpenServerless
authorization key and API host.</p><p>To create or update an action send a HTTP request with method <code>PUT</code> on
the the actions collection. For example, to create a <code>nodejs:6</code> action
with the name <code>hello</code> using a single file content use the following:</p><pre><code>curl -u $AUTH -d '{"namespace":"_","name":"hello","exec":{"kind":"nodejs:6","code":"function main(params) { return {payload:\"Hello \"+params.name}}"}}' -X PUT -H "Content-Type: application/json" https://$APIHOST/api/v1/namespaces/_/actions/hello?overwrite=true
@@ -242,7 +242,7 @@ on the action</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/a
-X PUT -H "Content-Type: application/json" \
-d '{"namespace":"_","name":"hello","exec":{"kind":"nodejs:6","code":"function main(params) { return {payload:\"Hello \"+params.name}}"},"annotations":[{"key":"web-export","value":true},{"key":"raw-http","value":false},{"key":"final","value":true}]}'
</code></pre><p>You can now invoke this action as a public URL with no OpenWhisk and
-Nuvolaris authorization. Try invoking using the web action public URL
+OpenServerless authorization. Try invoking using the web action public URL
including an optional extension such as <code>.json</code> or <code>.http</code> for example
at the end of the URL.</p><pre><code>curl https://$APIHOST/api/v1/web/john@example.com_dev/default/hello.json?name=John
@@ -252,7 +252,7 @@ at the end of the URL.</p><pre><code>curl https://$APIHOST/api/v1/web/john@examp
</code></pre><p>Note that this example source code will not work with <code>.http</code>, see <a href=webactions.md>web
actions</a> documentation on how to modify.</p><h2 id=sequences>Sequences</h2><p>To create an action sequence, you need to create it by providing the
names of the actions that compose the sequence in the desired order, so
-the output from the first action is passed as input to the next action.</p><p>$ nuv action create sequenceAction –sequence
+the output from the first action is passed as input to the next action.</p><p>$ ops action create sequenceAction –sequence
/whisk-system/utils/split,/whisk-system/utils/sort</p><p>Create a sequence with the actions <code>/whisk-system/utils/split</code> and
<code>/whisk-system/utils/sort</code>.</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/actions/sequenceAction?overwrite=true \
-X PUT -H "Content-Type: application/json" \
@@ -301,7 +301,7 @@ a path parameter</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/
concurrentInvocations, firesPerMinute, actionMemoryMax, actionLogsMax…)</p><pre><code>curl -u $AUTH https://$APIHOST/api/v1/namespaces/_/limits
</code></pre><p>Note that the default system values are returned if no specific limits
are set for the user corresponding to the authenticated identity.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/references/scheduler/_print/index.html b/docs/reference/references/scheduler/_print/index.html
index 2edf8ac..53b2051 100644
--- a/docs/reference/references/scheduler/_print/index.html
+++ b/docs/reference/references/scheduler/_print/index.html
@@ -3,9 +3,9 @@
How to Activate the Scheduler Using the ops CLI, you can enable the scheduler with the following command:
ops config enable --cron # if OpenServerless is not yet deployed ops setup devcluster # alternatively if OpenServerless is already deployed ops update apply By default, the internal scheduler executes a job every minute that starts searching for OpenWhisk actions with special annotations."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Scheduler"><meta itemprop=description content="OpenServerless Operator offers the possibi [...]
How to Activate the Scheduler Using the ops CLI, you can enable the scheduler with the following command:
-ops config enable --cron # if OpenServerless is not yet deployed ops setup devcluster # alternatively if OpenServerless is already deployed ops update apply By default, the internal scheduler executes a job every minute that starts searching for OpenWhisk actions with special annotations."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="329"><meta name=twitter:card content="summary"><meta name=twitter:title content="Scheduler"><meta name= [...]
+ops config enable --cron # if OpenServerless is not yet deployed ops setup devcluster # alternatively if OpenServerless is already deployed ops update apply By default, the internal scheduler executes a job every minute that starts searching for OpenWhisk actions with special annotations."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="329"><meta name=twitter:card content="summary"><meta name=twitter:title content="Scheduler"><meta name= [...]
How to Activate the Scheduler Using the ops CLI, you can enable the scheduler with the following command:
-ops config enable --cron # if OpenServerless is not yet deployed ops setup devcluster # alternatively if OpenServerless is already deployed ops update apply By default, the internal scheduler executes a job every minute that starts searching for OpenWhisk actions with special annotations."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200e [...]
+ops config enable --cron # if OpenServerless is not yet deployed ops setup devcluster # alternatively if OpenServerless is already deployed ops update apply By default, the internal scheduler executes a job every minute that starts searching for OpenWhisk actions with special annotations."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200e [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/references/scheduler/>Return to the regular view of this page</a>.</p></div><h1 class=title>Scheduler</h1><ul></ul><div class=content><p>OpenServerless Operator offers the possibility to deploy a simple “scheduler” to invoke repetitive or one-shot OpenWhisk actions. For example, an action executing a SQL script to create a PostgreSQL Database or inserting reference data, or simply an [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic># if OpenServerless is not yet deployed</span>
@@ -18,7 +18,7 @@ ops config enable --cron # if OpenServerless is not yet deployed ops setup devcl
</span></span><span style=display:flex><span> <span style=color:#204a87;font-weight:700>return</span> <span style=color:#000;font-weight:700>{</span>
</span></span><span style=display:flex><span> <span style=color:#4e9a06>'body'</span><span style=color:#000;font-weight:700>:</span> <span style=color:#4e9a06>'action invoked'</span>
</span></span><span style=display:flex><span> <span style=color:#000;font-weight:700>}</span>
-</span></span></code></pre></div><p>abd save it to a file called <code>scheduled-action.py</code></p><p>To deploy the action and instruct OpenServerless to execute it every 30 minutes, issue the following command:</p><p><code>ops action create scheduled-action scheduled-action.py -a cron "*/30 * * * *"</code></p><p>So you can create the action in the usual way and at the end add -a cron yourCronExpression.</p><h1 id=how-to-deploy-a-one-shot-execution-action>How to Deploy a One-Shot Execu [...]
+</span></span></code></pre></div><p>abd save it to a file called <code>scheduled-action.py</code></p><p>To deploy the action and instruct OpenServerless to execute it every 30 minutes, issue the following command:</p><p><code>ops action create scheduled-action scheduled-action.py -a cron "*/30 * * * *"</code></p><p>So you can create the action in the usual way and at the end add -a cron yourCronExpression.</p><h1 id=how-to-deploy-a-one-shot-execution-action>How to Deploy a One-Shot Execu [...]
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>[</span>
</span></span><span style=display:flex><span> <span style=color:#4e9a06>"2024-03-08T07:28:02.050739962Z stdout: Hello from a scheduled action"</span>
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>]</span>
diff --git a/docs/reference/references/scheduler/index.html b/docs/reference/references/scheduler/index.html
index c227e71..c97db8e 100644
--- a/docs/reference/references/scheduler/index.html
+++ b/docs/reference/references/scheduler/index.html
@@ -3,9 +3,9 @@
How to Activate the Scheduler Using the ops CLI, you can enable the scheduler with the following command:
ops config enable --cron # if OpenServerless is not yet deployed ops setup devcluster # alternatively if OpenServerless is already deployed ops update apply By default, the internal scheduler executes a job every minute that starts searching for OpenWhisk actions with special annotations."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Scheduler"><meta itemprop=description content="OpenServerless Operator offers the possibi [...]
How to Activate the Scheduler Using the ops CLI, you can enable the scheduler with the following command:
-ops config enable --cron # if OpenServerless is not yet deployed ops setup devcluster # alternatively if OpenServerless is already deployed ops update apply By default, the internal scheduler executes a job every minute that starts searching for OpenWhisk actions with special annotations."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="329"><meta name=twitter:card content="summary"><meta name=twitter:title content="Scheduler"><meta name= [...]
+ops config enable --cron # if OpenServerless is not yet deployed ops setup devcluster # alternatively if OpenServerless is already deployed ops update apply By default, the internal scheduler executes a job every minute that starts searching for OpenWhisk actions with special annotations."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="329"><meta name=twitter:card content="summary"><meta name=twitter:title content="Scheduler"><meta name= [...]
How to Activate the Scheduler Using the ops CLI, you can enable the scheduler with the following command:
-ops config enable --cron # if OpenServerless is not yet deployed ops setup devcluster # alternatively if OpenServerless is already deployed ops update apply By default, the internal scheduler executes a job every minute that starts searching for OpenWhisk actions with special annotations."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200e [...]
+ops config enable --cron # if OpenServerless is not yet deployed ops setup devcluster # alternatively if OpenServerless is already deployed ops update apply By default, the internal scheduler executes a job every minute that starts searching for OpenWhisk actions with special annotations."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200e [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -102,13 +102,13 @@ ops config enable --cron # if OpenServerless is not yet deployed ops setup devcl
</span></span><span style=display:flex><span> <span style=color:#204a87;font-weight:700>return</span> <span style=color:#000;font-weight:700>{</span>
</span></span><span style=display:flex><span> <span style=color:#4e9a06>'body'</span><span style=color:#000;font-weight:700>:</span> <span style=color:#4e9a06>'action invoked'</span>
</span></span><span style=display:flex><span> <span style=color:#000;font-weight:700>}</span>
-</span></span></code></pre></div><p>abd save it to a file called <code>scheduled-action.py</code></p><p>To deploy the action and instruct OpenServerless to execute it every 30 minutes, issue the following command:</p><p><code>ops action create scheduled-action scheduled-action.py -a cron "*/30 * * * *"</code></p><p>So you can create the action in the usual way and at the end add -a cron yourCronExpression.</p><h1 id=how-to-deploy-a-one-shot-execution-action>How to Deploy a One-Shot Execu [...]
+</span></span></code></pre></div><p>abd save it to a file called <code>scheduled-action.py</code></p><p>To deploy the action and instruct OpenServerless to execute it every 30 minutes, issue the following command:</p><p><code>ops action create scheduled-action scheduled-action.py -a cron "*/30 * * * *"</code></p><p>So you can create the action in the usual way and at the end add -a cron yourCronExpression.</p><h1 id=how-to-deploy-a-one-shot-execution-action>How to Deploy a One-Shot Execu [...]
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>[</span>
</span></span><span style=display:flex><span> <span style=color:#4e9a06>"2024-03-08T07:28:02.050739962Z stdout: Hello from a scheduled action"</span>
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>]</span>
</span></span></code></pre></div><h1 id=remarks>Remarks</h1><p>The Scheduler executes the action according to the following rules:</p><p>Actions are called in a non-blocking fashion. To verify execution and logs, use the command <code>ops activation list</code>.
Actions are invoked without any parameters. It is advised to deploy actions with self-contained parameters.</p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answe [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/runtimes/_print/index.html b/docs/reference/runtimes/_print/index.html
index 0c07d4b..fb3d05a 100644
--- a/docs/reference/runtimes/_print/index.html
+++ b/docs/reference/runtimes/_print/index.html
@@ -11,13 +11,13 @@ The programming languages currently directly supported by OpenServerless are:
🚧 Python
🚧 Go
🚧 Java
-🚧 PHP"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="28"><meta name=twitter:card content="summary"><meta name=twitter:title content="Runtimes"><meta name=twitter:description content="This document is still 🚧 work in progress 🚧
+🚧 PHP"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="28"><meta name=twitter:card content="summary"><meta name=twitter:title content="Runtimes"><meta name=twitter:description content="This document is still 🚧 work in progress 🚧
The programming languages currently directly supported by OpenServerless are:
🚧 Node
🚧 Python
🚧 Go
🚧 Java
-🚧 PHP"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="conta [...]
+🚧 PHP"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="conta [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/runtimes/>Return to the regular view of this page</a>.</p></div><h1 class=title>Runtimes</h1><ul></ul><div class=content><p>This document is still 🚧 <strong>work in progress</strong> 🚧</p><p>The programming languages currently directly supported by OpenServerless are:</p><ul><li><p><a href=/docs/reference/runtimes/#actions-nodejs.adoc>🚧 Node</a></p></li><li><p><a href=/docs/reference/runtimes/#ac [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
diff --git a/docs/reference/runtimes/index.html b/docs/reference/runtimes/index.html
index 31c8e9b..c5694d7 100644
--- a/docs/reference/runtimes/index.html
+++ b/docs/reference/runtimes/index.html
@@ -11,13 +11,13 @@ The programming languages currently directly supported by OpenServerless are:
🚧 Python
🚧 Go
🚧 Java
-🚧 PHP"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="28"><meta name=twitter:card content="summary"><meta name=twitter:title content="Runtimes"><meta name=twitter:description content="This document is still 🚧 work in progress 🚧
+🚧 PHP"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="28"><meta name=twitter:card content="summary"><meta name=twitter:title content="Runtimes"><meta name=twitter:description content="This document is still 🚧 work in progress 🚧
The programming languages currently directly supported by OpenServerless are:
🚧 Node
🚧 Python
🚧 Go
🚧 Java
-🚧 PHP"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="conta [...]
+🚧 PHP"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="conta [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -103,7 +103,7 @@ The programming languages currently directly supported by OpenServerless are:
<a href="https://github.com/apache/openserverless/issues/issues/new?title=Runtimes" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
<a id=print href=/docs/reference/runtimes/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class="breadcrumb-item active" aria-current=page>Runtimes</li></ol></nav><div class=td-content><h1>Runtimes</h1 [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tasks/_print/index.html b/docs/reference/tasks/_print/index.html
index 598ece6..bda57eb 100644
--- a/docs/reference/tasks/_print/index.html
+++ b/docs/reference/tasks/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tasks/><link rel=alternate type=application/rss+xml href=/docs/reference/tasks/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch- [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tasks/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tasks"><meta property="og:description" content="Type ops <task> to see usage and subtasks.
OpenServerless Tasks: config Manage the Apache OpenServerless configuration setup Setup the Apache OpenServerless platform on multiple environments debug Debug utilities for the Apache OpenServerless platform util Utilities OpenWhisk Tasks: action Manage actions invoke Invoke an action (pass parameters with <key>=<value>) url Get the url of an action activations Manage activations logs Show logs of activations result Show results of activations package Manage packages trigger Manage trig [...]
-OpenServerless Tasks: config Manage the Apache OpenServerless configuration setup Setup the Apache OpenServerless platform on multiple environments debug Debug utilities for the Apache OpenServerless platform util Utilities OpenWhisk Tasks: action Manage actions invoke Invoke an action (pass parameters with <key>=<value>) url Get the url of an action activations Manage activations logs Show logs of activations result Show results of activations package Manage packages trigger Manage trig [...]
-OpenServerless Tasks: config Manage the Apache OpenServerless configuration setup Setup the Apache OpenServerless platform on multiple environments debug Debug utilities for the Apache OpenServerless platform util Utilities OpenWhisk Tasks: action Manage actions invoke Invoke an action (pass parameters with <key>=<value>) url Get the url of an action activations Manage activations logs Show logs of activations result Show results of activations package Manage packages trigger Manage trig [...]
+OpenServerless Tasks: config Manage the Apache OpenServerless configuration setup Setup the Apache OpenServerless platform on multiple environments debug Debug utilities for the Apache OpenServerless platform util Utilities OpenWhisk Tasks: action Manage actions invoke Invoke an action (pass parameters with <key>=<value>) url Get the url of an action activations Manage activations logs Show logs of activations result Show results of activations package Manage packages trigger Manage trig [...]
+OpenServerless Tasks: config Manage the Apache OpenServerless configuration setup Setup the Apache OpenServerless platform on multiple environments debug Debug utilities for the Apache OpenServerless platform util Utilities OpenWhisk Tasks: action Manage actions invoke Invoke an action (pass parameters with <key>=<value>) url Get the url of an action activations Manage activations logs Show logs of activations result Show results of activations package Manage packages trigger Manage trig [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tasks/>Return to the regular view of this page</a>.</p></div><h1 class=title>Tasks</h1><ul><li>1: <a href=#pg-b92302ba4aa446aa810640c0f09ead94>config</a></li><ul></ul><li>2: <a href=#pg-c8a38269aa9c696d7d5b83c75c4d0ee0>setup</a></li><ul></ul></ul><div class=content><p>Type <code>ops <task></code> to see usage and subtasks.</p><h2 id=openserverless-tasks>OpenServerless Tasks:</h2><pre tabindex= [...]
setup Setup the Apache OpenServerless platform on multiple environments
debug Debug utilities for the Apache OpenServerless platform
diff --git a/docs/reference/tasks/config/_print/index.html b/docs/reference/tasks/config/_print/index.html
index 7e1cfcc..f009aff 100644
--- a/docs/reference/tasks/config/_print/index.html
+++ b/docs/reference/tasks/config/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tasks/config/><link rel=alternate type=application/rss+xml href=/docs/reference/tasks/config/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicon [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tasks/config/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="config"><meta property="og:description" content="ops config
config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota] config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto] config runtimes [<runtimesjson>] config slack [--apiurl=<slackapiurl>] [--channel=<slackchannel>] config mail [--mailuser=<mailuser>] [--mailpwd=<mailpwd>] [--mailfrom=<mailfrom>] [--mailto=<mailto>] config volumes [--couchdb=<couchdb>] [--kaf [...]
-config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota] config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto] config runtimes [<runtimesjson>] config slack [--apiurl=<slackapiurl>] [--channel=<slackchannel>] config mail [--mailuser=<mailuser>] [--mailpwd=<mailpwd>] [--mailfrom=<mailfrom>] [--mailto=<mailto>] config volumes [--couchdb=<couchdb>] [--kaf [...]
-config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota] config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto] config runtimes [<runtimesjson>] config slack [--apiurl=<slackapiurl>] [--channel=<slackchannel>] config mail [--mailuser=<mailuser>] [--mailpwd=<mailpwd>] [--mailfrom=<mailfrom>] [--mailto=<mailto>] config volumes [--couchdb=<couchdb>] [--kaf [...]
+config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota] config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto] config runtimes [<runtimesjson>] config slack [--apiurl=<slackapiurl>] [--channel=<slackchannel>] config mail [--mailuser=<mailuser>] [--mailpwd=<mailpwd>] [--mailfrom=<mailfrom>] [--mailto=<mailto>] config volumes [--couchdb=<couchdb>] [--kaf [...]
+config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota] config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto] config runtimes [<runtimesjson>] config slack [--apiurl=<slackapiurl>] [--channel=<slackchannel>] config mail [--mailuser=<mailuser>] [--mailpwd=<mailpwd>] [--mailfrom=<mailfrom>] [--mailto=<mailto>] config volumes [--couchdb=<couchdb>] [--kaf [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tasks/config/>Return to the regular view of this page</a>.</p></div><h1 class=title>config</h1><ul></ul><div class=content><p><code>ops config</code></p><pre tabindex=0><code class=language-Usage: data-lang=Usage:> config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota]
config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto]
config runtimes [<runtimesjson>]
diff --git a/docs/reference/tasks/config/index.html b/docs/reference/tasks/config/index.html
index 238430c..2a5879d 100644
--- a/docs/reference/tasks/config/index.html
+++ b/docs/reference/tasks/config/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tasks/config/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tasks/config/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favi [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tasks/config/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="config"><meta property="og:description" content="ops config
config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota] config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto] config runtimes [<runtimesjson>] config slack [--apiurl=<slackapiurl>] [--channel=<slackchannel>] config mail [--mailuser=<mailuser>] [--mailpwd=<mailpwd>] [--mailfrom=<mailfrom>] [--mailto=<mailto>] config volumes [--couchdb=<couchdb>] [--kaf [...]
-config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota] config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto] config runtimes [<runtimesjson>] config slack [--apiurl=<slackapiurl>] [--channel=<slackchannel>] config mail [--mailuser=<mailuser>] [--mailpwd=<mailpwd>] [--mailfrom=<mailfrom>] [--mailto=<mailto>] config volumes [--couchdb=<couchdb>] [--kaf [...]
-config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota] config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto] config runtimes [<runtimesjson>] config slack [--apiurl=<slackapiurl>] [--channel=<slackchannel>] config mail [--mailuser=<mailuser>] [--mailpwd=<mailpwd>] [--mailfrom=<mailfrom>] [--mailto=<mailto>] config volumes [--couchdb=<couchdb>] [--kaf [...]
+config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota] config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto] config runtimes [<runtimesjson>] config slack [--apiurl=<slackapiurl>] [--channel=<slackchannel>] config mail [--mailuser=<mailuser>] [--mailpwd=<mailpwd>] [--mailfrom=<mailfrom>] [--mailto=<mailto>] config volumes [--couchdb=<couchdb>] [--kaf [...]
+config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--static] [--postgres] [--prometheus] [--slack] [--mail] [--affinity] [--tolerations] [--quota] config apihost (<apihost>|auto) [--tls=<email>] [--protocol=<http/https>|auto] config runtimes [<runtimesjson>] config slack [--apiurl=<slackapiurl>] [--channel=<slackchannel>] config mail [--mailuser=<mailuser>] [--mailpwd=<mailpwd>] [--mailfrom=<mailfrom>] [--mailto=<mailto>] config volumes [--couchdb=<couchdb>] [--kaf [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -159,7 +159,7 @@ config (enable|disable) [--all] [--redis] [--mongodb] [--minio] [--cron] [--stat
--console activate a s3console ingress on components supporting it (Currently MINIO)
--quota select quota checker module
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tasks/index.html b/docs/reference/tasks/index.html
index b58080e..0eb2355 100644
--- a/docs/reference/tasks/index.html
+++ b/docs/reference/tasks/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tasks/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tasks/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-tou [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tasks/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tasks"><meta property="og:description" content="Type ops <task> to see usage and subtasks.
OpenServerless Tasks: config Manage the Apache OpenServerless configuration setup Setup the Apache OpenServerless platform on multiple environments debug Debug utilities for the Apache OpenServerless platform util Utilities OpenWhisk Tasks: action Manage actions invoke Invoke an action (pass parameters with <key>=<value>) url Get the url of an action activations Manage activations logs Show logs of activations result Show results of activations package Manage packages trigger Manage trig [...]
-OpenServerless Tasks: config Manage the Apache OpenServerless configuration setup Setup the Apache OpenServerless platform on multiple environments debug Debug utilities for the Apache OpenServerless platform util Utilities OpenWhisk Tasks: action Manage actions invoke Invoke an action (pass parameters with <key>=<value>) url Get the url of an action activations Manage activations logs Show logs of activations result Show results of activations package Manage packages trigger Manage trig [...]
-OpenServerless Tasks: config Manage the Apache OpenServerless configuration setup Setup the Apache OpenServerless platform on multiple environments debug Debug utilities for the Apache OpenServerless platform util Utilities OpenWhisk Tasks: action Manage actions invoke Invoke an action (pass parameters with <key>=<value>) url Get the url of an action activations Manage activations logs Show logs of activations result Show results of activations package Manage packages trigger Manage trig [...]
+OpenServerless Tasks: config Manage the Apache OpenServerless configuration setup Setup the Apache OpenServerless platform on multiple environments debug Debug utilities for the Apache OpenServerless platform util Utilities OpenWhisk Tasks: action Manage actions invoke Invoke an action (pass parameters with <key>=<value>) url Get the url of an action activations Manage activations logs Show logs of activations result Show results of activations package Manage packages trigger Manage trig [...]
+OpenServerless Tasks: config Manage the Apache OpenServerless configuration setup Setup the Apache OpenServerless platform on multiple environments debug Debug utilities for the Apache OpenServerless platform util Utilities OpenWhisk Tasks: action Manage actions invoke Invoke an action (pass parameters with <key>=<value>) url Get the url of an action activations Manage activations logs Show logs of activations result Show results of activations package Manage packages trigger Manage trig [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -101,7 +101,7 @@ OpenServerless Tasks: config Manage the Apache OpenServerless configuration setu
</span></span><span style=display:flex><span> trigger Manage triggers
</span></span><span style=display:flex><span> rule Manage rules for triggers
</span></span></code></pre></div><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/reference/tasks/config/>config</a></h5><p></p></div><div class=entry><h5><a href=/docs/reference/tasks/setup/>setup</a></h5><p></p></div></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Fee [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tasks/setup/_print/index.html b/docs/reference/tasks/setup/_print/index.html
index 30e91f2..6680b19 100644
--- a/docs/reference/tasks/setup/_print/index.html
+++ b/docs/reference/tasks/setup/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tasks/setup/><link rel=alternate type=application/rss+xml href=/docs/reference/tasks/setup/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/ [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tasks/setup/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="setup"><meta property="og:description" content="ops ent setup
setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|--status] setup server <server> [<user>] [--uninstall|--status] setup status setup uninstall setup prereq setup cluster deploy Apache OpenServerless in the Kubernetes cluster using the <context>, default the current setup devcluster deploy Apache OpenServerless in a devcluster created locally you need Docker Desktop available with at least 6G of memory assigned setup server create a Kubernetes in server <serve [...]
-setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|--status] setup server <server> [<user>] [--uninstall|--status] setup status setup uninstall setup prereq setup cluster deploy Apache OpenServerless in the Kubernetes cluster using the <context>, default the current setup devcluster deploy Apache OpenServerless in a devcluster created locally you need Docker Desktop available with at least 6G of memory assigned setup server create a Kubernetes in server <serve [...]
-setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|--status] setup server <server> [<user>] [--uninstall|--status] setup status setup uninstall setup prereq setup cluster deploy Apache OpenServerless in the Kubernetes cluster using the <context>, default the current setup devcluster deploy Apache OpenServerless in a devcluster created locally you need Docker Desktop available with at least 6G of memory assigned setup server create a Kubernetes in server <serve [...]
+setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|--status] setup server <server> [<user>] [--uninstall|--status] setup status setup uninstall setup prereq setup cluster deploy Apache OpenServerless in the Kubernetes cluster using the <context>, default the current setup devcluster deploy Apache OpenServerless in a devcluster created locally you need Docker Desktop available with at least 6G of memory assigned setup server create a Kubernetes in server <serve [...]
+setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|--status] setup server <server> [<user>] [--uninstall|--status] setup status setup uninstall setup prereq setup cluster deploy Apache OpenServerless in the Kubernetes cluster using the <context>, default the current setup devcluster deploy Apache OpenServerless in a devcluster created locally you need Docker Desktop available with at least 6G of memory assigned setup server create a Kubernetes in server <serve [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tasks/setup/>Return to the regular view of this page</a>.</p></div><h1 class=title>setup</h1><ul></ul><div class=content><p>ops ent setup</p><pre tabindex=0><code> setup devcluster [--uninstall|--status]
setup cluster [<context>] [--uninstall|--status]
setup server <server> [<user>] [--uninstall|--status]
diff --git a/docs/reference/tasks/setup/index.html b/docs/reference/tasks/setup/index.html
index d09e15e..c48b928 100644
--- a/docs/reference/tasks/setup/index.html
+++ b/docs/reference/tasks/setup/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tasks/setup/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tasks/setup/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favico [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tasks/setup/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="setup"><meta property="og:description" content="ops ent setup
setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|--status] setup server <server> [<user>] [--uninstall|--status] setup status setup uninstall setup prereq setup cluster deploy Apache OpenServerless in the Kubernetes cluster using the <context>, default the current setup devcluster deploy Apache OpenServerless in a devcluster created locally you need Docker Desktop available with at least 6G of memory assigned setup server create a Kubernetes in server <serve [...]
-setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|--status] setup server <server> [<user>] [--uninstall|--status] setup status setup uninstall setup prereq setup cluster deploy Apache OpenServerless in the Kubernetes cluster using the <context>, default the current setup devcluster deploy Apache OpenServerless in a devcluster created locally you need Docker Desktop available with at least 6G of memory assigned setup server create a Kubernetes in server <serve [...]
-setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|--status] setup server <server> [<user>] [--uninstall|--status] setup status setup uninstall setup prereq setup cluster deploy Apache OpenServerless in the Kubernetes cluster using the <context>, default the current setup devcluster deploy Apache OpenServerless in a devcluster created locally you need Docker Desktop available with at least 6G of memory assigned setup server create a Kubernetes in server <serve [...]
+setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|--status] setup server <server> [<user>] [--uninstall|--status] setup status setup uninstall setup prereq setup cluster deploy Apache OpenServerless in the Kubernetes cluster using the <context>, default the current setup devcluster deploy Apache OpenServerless in a devcluster created locally you need Docker Desktop available with at least 6G of memory assigned setup server create a Kubernetes in server <serve [...]
+setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|--status] setup server <server> [<user>] [--uninstall|--status] setup status setup uninstall setup prereq setup cluster deploy Apache OpenServerless in the Kubernetes cluster using the <context>, default the current setup devcluster deploy Apache OpenServerless in a devcluster created locally you need Docker Desktop available with at least 6G of memory assigned setup server create a Kubernetes in server <serve [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -105,7 +105,7 @@ setup devcluster [--uninstall|--status] setup cluster [<context>] [--uninstall|-
--status show the status instead of an installation
</code></pre><pre tabindex=0><code> kubernetes kubernetes subcommands
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/_print/index.html b/docs/reference/tools/_print/index.html
index 9033b7b..a764801 100644
--- a/docs/reference/tools/_print/index.html
+++ b/docs/reference/tools/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch- [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tools"><meta property="og:description" content="Available tool (embedded commands) in ops:"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Tools"><meta itemprop=description content="Available tool (embedded commands) i [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tools"><meta property="og:description" content="Available tool (embedded commands) in ops:"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Tools"><meta itemprop=description content="Available tool (embedded commands) i [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/>Return to the regular view of this page</a>.</p></div><h1 class=title>Tools</h1><ul><li>1: <a href=#pg-27ce85a78a48fecdeaa223d6b60b9bb9>base64</a></li><ul></ul><li>2: <a href=#pg-7932ac2b4477bd1e28e9f99cc6850ede>datefmt</a></li><ul></ul><li>3: <a href=#pg-771bb4a3c7333d06a601254ab63e20cb>echoif</a></li><ul></ul><li>4: <a href=#pg-7d915f0d4d6c781752d0a371929c3352>echoifempty</a></li><ul></u [...]
otherwise. As a decoder it only accepts raw base64 input and as an encoder it does not produce the framing
lines.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
diff --git a/docs/reference/tools/base64/_print/index.html b/docs/reference/tools/base64/_print/index.html
index eb2d485..336376c 100644
--- a/docs/reference/tools/base64/_print/index.html
+++ b/docs/reference/tools/base64/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/base64/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/base64/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicon [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/base64/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="base64"><meta property="og:description" content='base64 utility acts as a base64 decoder when passed the --decode (or -d) flag and as a base64 encoder otherwise. As a decoder it only accepts raw base64 input and as an encoder it does not produce the framing lines.
Usage: ops -base64 [options] <string> Options -h, --help Display this help message -e, --encode <string> Encode a string to base64 -d, --decode <string> Decode a base64 string Examples Encoding ops -base64 -e "OpenServerless is wonderful" This will output:'><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="base64"><meta itemprop=description content='base64 utility acts as a base64 decoder when passed the --decode (or -d) flag [...]
-Usage: ops -base64 [options] <string> Options -h, --help Display this help message -e, --encode <string> Encode a string to base64 -d, --decode <string> Decode a base64 string Examples Encoding ops -base64 -e "OpenServerless is wonderful" This will output:'><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="90"><meta name=twitter:card content="summary"><meta name=twitter:title content="base64"><meta name=twitter:description content='base64 u [...]
-Usage: ops -base64 [options] <string> Options -h, --help Display this help message -e, --encode <string> Encode a string to base64 -d, --decode <string> Decode a base64 string Examples Encoding ops -base64 -e "OpenServerless is wonderful" This will output:'><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrit [...]
+Usage: ops -base64 [options] <string> Options -h, --help Display this help message -e, --encode <string> Encode a string to base64 -d, --decode <string> Decode a base64 string Examples Encoding ops -base64 -e "OpenServerless is wonderful" This will output:'><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="90"><meta name=twitter:card content="summary"><meta name=twitter:title content="base64"><meta name=twitter:description content='base64 u [...]
+Usage: ops -base64 [options] <string> Options -h, --help Display this help message -e, --encode <string> Encode a string to base64 -d, --decode <string> Decode a base64 string Examples Encoding ops -base64 -e "OpenServerless is wonderful" This will output:'><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrit [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/base64/>Return to the regular view of this page</a>.</p></div><h1 class=title>base64</h1><ul></ul><div class=content><p><code>base64</code> utility acts as a base64 decoder when passed the <code>--decode</code> (or -d) flag and as a base64 encoder
otherwise. As a decoder it only accepts raw base64 input and as an encoder it does not produce the framing
lines.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
diff --git a/docs/reference/tools/base64/index.html b/docs/reference/tools/base64/index.html
index 33b682d..0007cba 100644
--- a/docs/reference/tools/base64/index.html
+++ b/docs/reference/tools/base64/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/base64/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/base64/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favi [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/base64/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="base64"><meta property="og:description" content='base64 utility acts as a base64 decoder when passed the --decode (or -d) flag and as a base64 encoder otherwise. As a decoder it only accepts raw base64 input and as an encoder it does not produce the framing lines.
Usage: ops -base64 [options] <string> Options -h, --help Display this help message -e, --encode <string> Encode a string to base64 -d, --decode <string> Decode a base64 string Examples Encoding ops -base64 -e "OpenServerless is wonderful" This will output:'><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="base64"><meta itemprop=description content='base64 utility acts as a base64 decoder when passed the --decode (or -d) flag [...]
-Usage: ops -base64 [options] <string> Options -h, --help Display this help message -e, --encode <string> Encode a string to base64 -d, --decode <string> Decode a base64 string Examples Encoding ops -base64 -e "OpenServerless is wonderful" This will output:'><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="90"><meta name=twitter:card content="summary"><meta name=twitter:title content="base64"><meta name=twitter:description content='base64 u [...]
-Usage: ops -base64 [options] <string> Options -h, --help Display this help message -e, --encode <string> Encode a string to base64 -d, --decode <string> Decode a base64 string Examples Encoding ops -base64 -e "OpenServerless is wonderful" This will output:'><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrit [...]
+Usage: ops -base64 [options] <string> Options -h, --help Display this help message -e, --encode <string> Encode a string to base64 -d, --decode <string> Decode a base64 string Examples Encoding ops -base64 -e "OpenServerless is wonderful" This will output:'><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="90"><meta name=twitter:card content="summary"><meta name=twitter:title content="base64"><meta name=twitter:description content='base64 u [...]
+Usage: ops -base64 [options] <string> Options -h, --help Display this help message -e, --encode <string> Encode a string to base64 -d, --decode <string> Decode a base64 string Examples Encoding ops -base64 -e "OpenServerless is wonderful" This will output:'><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrit [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -99,7 +99,7 @@ lines.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-m
</span></span></code></pre></div><h3 id=decoding>Decoding</h3><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops -base64 -d <span style=color:#4e9a06>"T3BlblNlcnZlcmxlc3MgaXMgd29uZGVyZnVs"</span>
</span></span></code></pre></div><p>This will output:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>OpenServerless is wonderful
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/datefmt/_print/index.html b/docs/reference/tools/datefmt/_print/index.html
index 26337c1..cb2e558 100644
--- a/docs/reference/tools/datefmt/_print/index.html
+++ b/docs/reference/tools/datefmt/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/datefmt/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/datefmt/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favic [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/datefmt/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="datefmt"><meta property="og:description" content="Print date with different formats. If no time stamp or date strings are given, uses current time
Usage: ops -datefmt [options] [arguments] Options -h, --help print this help info -t, --timestamp unix timestamp to format (default: current time) -s, --str date string to format --if input format to use with input date string (via --str) -f, --of output format to use (default: UnixDate) Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):"><meta property="og:locale" content="en"><meta property="og:type" content="website"><m [...]
-Usage: ops -datefmt [options] [arguments] Options -h, --help print this help info -t, --timestamp unix timestamp to format (default: current time) -s, --str date string to format --if input format to use with input date string (via --str) -f, --of output format to use (default: UnixDate) Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCo [...]
-Usage: ops -datefmt [options] [arguments] Options -h, --help print this help info -t, --timestamp unix timestamp to format (default: current time) -s, --str date string to format --if input format to use with input date string (via --str) -f, --of output format to use (default: UnixDate) Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabba [...]
+Usage: ops -datefmt [options] [arguments] Options -h, --help print this help info -t, --timestamp unix timestamp to format (default: current time) -s, --str date string to format --if input format to use with input date string (via --str) -f, --of output format to use (default: UnixDate) Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCo [...]
+Usage: ops -datefmt [options] [arguments] Options -h, --help print this help info -t, --timestamp unix timestamp to format (default: current time) -s, --str date string to format --if input format to use with input date string (via --str) -f, --of output format to use (default: UnixDate) Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabba [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/datefmt/>Return to the regular view of this page</a>.</p></div><h1 class=title>datefmt</h1><ul></ul><div class=content><p>Print date with different formats. If no time stamp or date strings are given, uses current time</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:f [...]
</span></span><span style=display:flex><span> ops -datefmt [options] [arguments]
</span></span></code></pre></div><h2 id=options>Options</h2><pre tabindex=0><code> -h, --help print this help info
diff --git a/docs/reference/tools/datefmt/index.html b/docs/reference/tools/datefmt/index.html
index e09f49c..bb28af9 100644
--- a/docs/reference/tools/datefmt/index.html
+++ b/docs/reference/tools/datefmt/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/datefmt/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/datefmt/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/fa [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/datefmt/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="datefmt"><meta property="og:description" content="Print date with different formats. If no time stamp or date strings are given, uses current time
Usage: ops -datefmt [options] [arguments] Options -h, --help print this help info -t, --timestamp unix timestamp to format (default: current time) -s, --str date string to format --if input format to use with input date string (via --str) -f, --of output format to use (default: UnixDate) Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):"><meta property="og:locale" content="en"><meta property="og:type" content="website"><m [...]
-Usage: ops -datefmt [options] [arguments] Options -h, --help print this help info -t, --timestamp unix timestamp to format (default: current time) -s, --str date string to format --if input format to use with input date string (via --str) -f, --of output format to use (default: UnixDate) Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCo [...]
-Usage: ops -datefmt [options] [arguments] Options -h, --help print this help info -t, --timestamp unix timestamp to format (default: current time) -s, --str date string to format --if input format to use with input date string (via --str) -f, --of output format to use (default: UnixDate) Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabba [...]
+Usage: ops -datefmt [options] [arguments] Options -h, --help print this help info -t, --timestamp unix timestamp to format (default: current time) -s, --str date string to format --if input format to use with input date string (via --str) -f, --of output format to use (default: UnixDate) Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCo [...]
+Usage: ops -datefmt [options] [arguments] Options -h, --help print this help info -t, --timestamp unix timestamp to format (default: current time) -s, --str date string to format --if input format to use with input date string (via --str) -f, --of output format to use (default: UnixDate) Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabba [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -97,7 +97,7 @@ Usage: ops -datefmt [options] [arguments] Options -h, --help print this help inf
</code></pre><p>Possible formats (they follows the standard naming of go time formats, with the addition of ‘Millisecond’ and ‘ms’):</p><ul><li>Layout</li><li>ANSIC</li><li>UnixDate</li><li>RubyDate</li><li>RFC822</li><li>RFC822Z</li><li>RFC850</li><li>RFC1123</li><li>RFC1123Z</li><li>RFC3339</li><li>RFC3339Nano</li><li>Kitchen</li><li>Stamp</li><li>StampMilli</li><li>StampMicro</li><li>StampNano</li><li>DateTime</li><li>DateOnly</li><li>TimeOnly</li><li>Milliseco [...]
</span></span><span style=display:flex><span>2024-08-11 03:00:34
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/echoif/_print/index.html b/docs/reference/tools/echoif/_print/index.html
index 8b80c4d..ef87716 100644
--- a/docs/reference/tools/echoif/_print/index.html
+++ b/docs/reference/tools/echoif/_print/index.html
@@ -3,9 +3,9 @@
Usage: ops -echoif <a> <b> Example $( exit 1 ); ops -echoif "0" "1" 1 or
$( exit 0 ); ops -echoif "0" "1" 0 '><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="echoif"><meta itemprop=description content='echoif is a utility that echoes the value of <a> if the exit code of the previous command is 0, echoes the value of <b> otherwise
Usage: ops -echoif <a> <b> Example $( exit 1 ); ops -echoif "0" "1" 1 or
-$( exit 0 ); ops -echoif "0" "1" 0 '><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="51"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoif"><meta name=twitter:description content='echoif is a utility that echoes the value of <a> if the exit code of the previous command is 0, echoes the value of <b> otherwise
+$( exit 0 ); ops -echoif "0" "1" 0 '><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="51"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoif"><meta name=twitter:description content='echoif is a utility that echoes the value of <a> if the exit code of the previous command is 0, echoes the value of <b> otherwise
Usage: ops -echoif <a> <b> Example $( exit 1 ); ops -echoif "0" "1" 1 or
-$( exit 0 ); ops -echoif "0" "1" 0 '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-b [...]
+$( exit 0 ); ops -echoif "0" "1" 0 '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-b [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/echoif/>Return to the regular view of this page</a>.</p></div><h1 class=title>echoif</h1><ul></ul><div class=content><p><code>echoif</code> is a utility that echoes the value of <code><a></code> if the exit code of the previous command is 0,
echoes the value of <code><b></code> otherwise</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -echoif <a> <b>
diff --git a/docs/reference/tools/echoif/index.html b/docs/reference/tools/echoif/index.html
index 1bfca65..228a851 100644
--- a/docs/reference/tools/echoif/index.html
+++ b/docs/reference/tools/echoif/index.html
@@ -3,9 +3,9 @@
Usage: ops -echoif <a> <b> Example $( exit 1 ); ops -echoif "0" "1" 1 or
$( exit 0 ); ops -echoif "0" "1" 0 '><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="echoif"><meta itemprop=description content='echoif is a utility that echoes the value of <a> if the exit code of the previous command is 0, echoes the value of <b> otherwise
Usage: ops -echoif <a> <b> Example $( exit 1 ); ops -echoif "0" "1" 1 or
-$( exit 0 ); ops -echoif "0" "1" 0 '><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="51"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoif"><meta name=twitter:description content='echoif is a utility that echoes the value of <a> if the exit code of the previous command is 0, echoes the value of <b> otherwise
+$( exit 0 ); ops -echoif "0" "1" 0 '><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="51"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoif"><meta name=twitter:description content='echoif is a utility that echoes the value of <a> if the exit code of the previous command is 0, echoes the value of <b> otherwise
Usage: ops -echoif <a> <b> Example $( exit 1 ); ops -echoif "0" "1" 1 or
-$( exit 0 ); ops -echoif "0" "1" 0 '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-b [...]
+$( exit 0 ); ops -echoif "0" "1" 0 '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-b [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -98,7 +98,7 @@ echoes the value of <code><b></code> otherwise</p><div class=highlight><pre t
</span></span></code></pre></div><p>or</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span> <span style=color:#204a87;font-weight:700>$(</span> <span style=color:#204a87>exit</span> <span style=color:#0000cf;font-weight:700>0</span> <span style=color:#204a87;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span> ops -echoif <span style=colo [...]
</span></span><span style=display:flex><span> <span style=color:#0000cf;font-weight:700>0</span>
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/echoifempty/_print/index.html b/docs/reference/tools/echoifempty/_print/index.html
index 2abddeb..5aa200f 100644
--- a/docs/reference/tools/echoifempty/_print/index.html
+++ b/docs/reference/tools/echoifempty/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/echoifempty/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/echoifempty/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon hre [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/echoifempty/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="echoifempty"><meta property="og:description" content='echoifempty is a utility that echoes the value of <a> if <str> is empty, echoes the value of <b> otherwise.
Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string" "string is empty" "string is not empty" '><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="echoifempty"><meta itemprop=description content='echoifempty is a utility that echoes the value of <a> if <str> is empty, echoes the value of <b> otherwise.
-Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string" "string is empty" "string is not empty" '><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="39"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoifempty"><meta name=twitter:description content='echoifempty is a utility that echoes the value of <a> if <str> is empty, echoes the value of <b> otherwise.
-Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string" "string is empty" "string is not empty" '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.c [...]
+Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string" "string is empty" "string is not empty" '><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="39"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoifempty"><meta name=twitter:description content='echoifempty is a utility that echoes the value of <a> if <str> is empty, echoes the value of <b> otherwise.
+Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string" "string is empty" "string is not empty" '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.c [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/echoifempty/>Return to the regular view of this page</a>.</p></div><h1 class=title>echoifempty</h1><ul></ul><div class=content><p><code>echoifempty</code> is a utility that echoes the value of <code><a></code> if <code><str></code> is empty, echoes the value of <code><b></code> otherwise.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab- [...]
</span></span><span style=display:flex><span> ops -echoifempty <str> <a> <b>
</span></span></code></pre></div><h2 id=example>Example</h2><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span> ops -echoifempty <span style=color:#4e9a06>"not empty string"</span> <span style=color:#4e9a06>"string is empty"</span> <span style=color:#4e9a06>"string is not empty"</span>
diff --git a/docs/reference/tools/echoifempty/index.html b/docs/reference/tools/echoifempty/index.html
index fd9992e..b78556e 100644
--- a/docs/reference/tools/echoifempty/index.html
+++ b/docs/reference/tools/echoifempty/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/echoifempty/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/echoifempty/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/echoifempty/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="echoifempty"><meta property="og:description" content='echoifempty is a utility that echoes the value of <a> if <str> is empty, echoes the value of <b> otherwise.
Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string" "string is empty" "string is not empty" '><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="echoifempty"><meta itemprop=description content='echoifempty is a utility that echoes the value of <a> if <str> is empty, echoes the value of <b> otherwise.
-Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string" "string is empty" "string is not empty" '><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="39"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoifempty"><meta name=twitter:description content='echoifempty is a utility that echoes the value of <a> if <str> is empty, echoes the value of <b> otherwise.
-Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string" "string is empty" "string is not empty" '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.c [...]
+Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string" "string is empty" "string is not empty" '><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="39"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoifempty"><meta name=twitter:description content='echoifempty is a utility that echoes the value of <a> if <str> is empty, echoes the value of <b> otherwise.
+Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string" "string is empty" "string is not empty" '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.c [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -91,7 +91,7 @@ Usage: ops -echoifempty <str> <a> <b> Example ops -echoifempty "not empty string
</span></span><span style=display:flex><span> ops -echoifempty <str> <a> <b>
</span></span></code></pre></div><h2 id=example>Example</h2><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span> ops -echoifempty <span style=color:#4e9a06>"not empty string"</span> <span style=color:#4e9a06>"string is empty"</span> <span style=color:#4e9a06>"string is not empty"</span>
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/echoifexists/_print/index.html b/docs/reference/tools/echoifexists/_print/index.html
index 65db590..36d61f2 100644
--- a/docs/reference/tools/echoifexists/_print/index.html
+++ b/docs/reference/tools/echoifexists/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/echoifexists/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/echoifexists/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon h [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/echoifexists/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="echoifexists"><meta property="og:description" content='echoifexists is a utility that echoes the value of <a> if <file> exists, echoes the value of <b> otherwise.
Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "doesn't exists" '><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="echoifexists"><meta itemprop=description content='echoifexists is a utility that echoes the value of <a> if <file> exists, echoes the value of <b> otherwise.
-Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "doesn't exists" '><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="31"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoifexists"><meta name=twitter:description content='echoifexists is a utility that echoes the value of <a> if <file> exists, echoes the value of <b> otherwise.
-Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "doesn't exists" '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-s [...]
+Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "doesn't exists" '><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="31"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoifexists"><meta name=twitter:description content='echoifexists is a utility that echoes the value of <a> if <file> exists, echoes the value of <b> otherwise.
+Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "doesn't exists" '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-s [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/echoifexists/>Return to the regular view of this page</a>.</p></div><h1 class=title>echoifexists</h1><ul></ul><div class=content><p>echoifexists is a utility that echoes the value of <code><a></code> if <code><file></code> exists, echoes the value of <code><b></code> otherwise.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab- [...]
</span></span><span style=display:flex><span> ops -echoifexists <file> <a> <b>
</span></span></code></pre></div><h2 id=example>Example</h2><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span> ops -echoifexists <span style=color:#4e9a06>"exists"</span> <span style=color:#4e9a06>"doesn't exists"</span>
diff --git a/docs/reference/tools/echoifexists/index.html b/docs/reference/tools/echoifexists/index.html
index f6ac9e4..df89906 100644
--- a/docs/reference/tools/echoifexists/index.html
+++ b/docs/reference/tools/echoifexists/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/echoifexists/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/echoifexists/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-ico [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/echoifexists/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="echoifexists"><meta property="og:description" content='echoifexists is a utility that echoes the value of <a> if <file> exists, echoes the value of <b> otherwise.
Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "doesn't exists" '><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="echoifexists"><meta itemprop=description content='echoifexists is a utility that echoes the value of <a> if <file> exists, echoes the value of <b> otherwise.
-Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "doesn't exists" '><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="31"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoifexists"><meta name=twitter:description content='echoifexists is a utility that echoes the value of <a> if <file> exists, echoes the value of <b> otherwise.
-Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "doesn't exists" '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-s [...]
+Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "doesn't exists" '><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="31"><meta name=twitter:card content="summary"><meta name=twitter:title content="echoifexists"><meta name=twitter:description content='echoifexists is a utility that echoes the value of <a> if <file> exists, echoes the value of <b> otherwise.
+Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "doesn't exists" '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-s [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -91,7 +91,7 @@ Usage: ops -echoifexists <file> <a> <b> Example ops -echoifexists "exists" "does
</span></span><span style=display:flex><span> ops -echoifexists <file> <a> <b>
</span></span></code></pre></div><h2 id=example>Example</h2><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span> ops -echoifexists <span style=color:#4e9a06>"exists"</span> <span style=color:#4e9a06>"doesn't exists"</span>
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/empty/_print/index.html b/docs/reference/tools/empty/_print/index.html
index dc46da1..92d648b 100644
--- a/docs/reference/tools/empty/_print/index.html
+++ b/docs/reference/tools/empty/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/empty/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/empty/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/ [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/empty/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="empty"><meta property="og:description" content="empty creates an empty file - returns error if it already exists.
Usage: ops -empty <filename> "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="empty"><meta itemprop=description content="empty creates an empty file - returns error if it already exists.
-Usage: ops -empty <filename> "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="16"><meta name=twitter:card content="summary"><meta name=twitter:title content="empty"><meta name=twitter:description content="empty creates an empty file - returns error if it already exists.
-Usage: ops -empty <filename> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-them [...]
+Usage: ops -empty <filename> "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="16"><meta name=twitter:card content="summary"><meta name=twitter:title content="empty"><meta name=twitter:description content="empty creates an empty file - returns error if it already exists.
+Usage: ops -empty <filename> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-them [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/empty/>Return to the regular view of this page</a>.</p></div><h1 class=title>empty</h1><ul></ul><div class=content><p><code>empty</code> creates an empty file - returns error if it already exists.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -empty <filename>
</span></span></code></pre></div></div></div></main></div></div><footer class="td-footer row d-print-none"><div class=container-fluid><div class="disclaimer text-center"><div class="row mx-md-2"><div class="td-footer__left col-6 col-sm-2 order-sm-1"> </div><div class="td-footer__right col-6 col-sm-2 order-sm-3"> </div><div class="td-footer__center col-12 col-sm-8 py-2 order-sm-2"><p>Apache Openserverless™ is an effort undergoing incubation at The Apache Software Foundation (ASF),
diff --git a/docs/reference/tools/empty/index.html b/docs/reference/tools/empty/index.html
index eee9f8d..c96c0c1 100644
--- a/docs/reference/tools/empty/index.html
+++ b/docs/reference/tools/empty/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/empty/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/empty/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favico [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/empty/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="empty"><meta property="og:description" content="empty creates an empty file - returns error if it already exists.
Usage: ops -empty <filename> "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="empty"><meta itemprop=description content="empty creates an empty file - returns error if it already exists.
-Usage: ops -empty <filename> "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="16"><meta name=twitter:card content="summary"><meta name=twitter:title content="empty"><meta name=twitter:description content="empty creates an empty file - returns error if it already exists.
-Usage: ops -empty <filename> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-them [...]
+Usage: ops -empty <filename> "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="16"><meta name=twitter:card content="summary"><meta name=twitter:title content="empty"><meta name=twitter:description content="empty creates an empty file - returns error if it already exists.
+Usage: ops -empty <filename> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-them [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -90,7 +90,7 @@ Usage: ops -empty <filename> "><link rel=preload href=/scss/main.min.19cc757d764
<a id=print href=/docs/reference/tools/empty/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class=breadcrumb-item><a href=/docs/reference/tools/>Tools</a></li><li class="breadcrumb-item active" aria-c [...]
</span></span><span style=display:flex><span> ops -empty <filename>
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/executable/_print/index.html b/docs/reference/tools/executable/_print/index.html
index 7b1f47e..80a5ff5 100644
--- a/docs/reference/tools/executable/_print/index.html
+++ b/docs/reference/tools/executable/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/executable/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/executable/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href= [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/executable/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="executable"><meta property="og:description" content="executable make a file executable: on Unix-like systems it will do a chmod u+x. On Windows systems it will rename the file to .exe if needed.
Usage: ops -executable <filename> Example ops -executable kind "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="executable"><meta itemprop=description content="executable make a file executable: on Unix-like systems it will do a chmod u+x. On Windows systems it will rename the file to .exe if needed.
-Usage: ops -executable <filename> Example ops -executable kind "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="34"><meta name=twitter:card content="summary"><meta name=twitter:title content="executable"><meta name=twitter:description content="executable make a file executable: on Unix-like systems it will do a chmod u+x. On Windows systems it will rename the file to .exe if needed.
-Usage: ops -executable <filename> Example ops -executable kind "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-nav [...]
+Usage: ops -executable <filename> Example ops -executable kind "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="34"><meta name=twitter:card content="summary"><meta name=twitter:title content="executable"><meta name=twitter:description content="executable make a file executable: on Unix-like systems it will do a chmod u+x. On Windows systems it will rename the file to .exe if needed.
+Usage: ops -executable <filename> Example ops -executable kind "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-nav [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/executable/>Return to the regular view of this page</a>.</p></div><h1 class=title>executable</h1><ul></ul><div class=content><p><code>executable</code> make a file executable: on Unix-like systems it will do a chmod u+x.
On Windows systems it will rename the file to .exe if needed.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -executable <filename>
diff --git a/docs/reference/tools/executable/index.html b/docs/reference/tools/executable/index.html
index 9bf6c8f..b40f3f3 100644
--- a/docs/reference/tools/executable/index.html
+++ b/docs/reference/tools/executable/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/executable/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/executable/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon hr [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/executable/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="executable"><meta property="og:description" content="executable make a file executable: on Unix-like systems it will do a chmod u+x. On Windows systems it will rename the file to .exe if needed.
Usage: ops -executable <filename> Example ops -executable kind "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="executable"><meta itemprop=description content="executable make a file executable: on Unix-like systems it will do a chmod u+x. On Windows systems it will rename the file to .exe if needed.
-Usage: ops -executable <filename> Example ops -executable kind "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="34"><meta name=twitter:card content="summary"><meta name=twitter:title content="executable"><meta name=twitter:description content="executable make a file executable: on Unix-like systems it will do a chmod u+x. On Windows systems it will rename the file to .exe if needed.
-Usage: ops -executable <filename> Example ops -executable kind "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-nav [...]
+Usage: ops -executable <filename> Example ops -executable kind "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="34"><meta name=twitter:card content="summary"><meta name=twitter:title content="executable"><meta name=twitter:description content="executable make a file executable: on Unix-like systems it will do a chmod u+x. On Windows systems it will rename the file to .exe if needed.
+Usage: ops -executable <filename> Example ops -executable kind "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-nav [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -92,7 +92,7 @@ On Windows systems it will rename the file to .exe if needed.</p><div class=high
</span></span><span style=display:flex><span> ops -executable <filename>
</span></span></code></pre></div><h2 id=example>Example</h2><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops -executable kind
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/extract/_print/index.html b/docs/reference/tools/extract/_print/index.html
index ddc8994..9a93a4e 100644
--- a/docs/reference/tools/extract/_print/index.html
+++ b/docs/reference/tools/extract/_print/index.html
@@ -3,9 +3,9 @@
Usage: ops -extract file.(zip|tgz|tar[.gz|.bz2|.xz]) target Example Extract file named single.pdf from archive.zip archive.
ops -extract archive.zip single.pdf "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="extract"><meta itemprop=description content="Extract one single file from a .zip .tar, .tgz, .tar.gz, tar.bz2, tar.gz.
Usage: ops -extract file.(zip|tgz|tar[.gz|.bz2|.xz]) target Example Extract file named single.pdf from archive.zip archive.
-ops -extract archive.zip single.pdf "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="29"><meta name=twitter:card content="summary"><meta name=twitter:title content="extract"><meta name=twitter:description content="Extract one single file from a .zip .tar, .tgz, .tar.gz, tar.bz2, tar.gz.
+ops -extract archive.zip single.pdf "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="29"><meta name=twitter:card content="summary"><meta name=twitter:title content="extract"><meta name=twitter:description content="Extract one single file from a .zip .tar, .tgz, .tar.gz, tar.bz2, tar.gz.
Usage: ops -extract file.(zip|tgz|tar[.gz|.bz2|.xz]) target Example Extract file named single.pdf from archive.zip archive.
-ops -extract archive.zip single.pdf "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data- [...]
+ops -extract archive.zip single.pdf "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data- [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/extract/>Return to the regular view of this page</a>.</p></div><h1 class=title>extract</h1><ul></ul><div class=content><p>Extract one single file from a .zip .tar, .tgz, .tar.gz, tar.bz2, tar.gz.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -extract file.(zip|tgz|tar[.gz|.bz2|.xz]) target
</span></span></code></pre></div><h2 id=example>Example</h2><p>Extract file named <code>single.pdf</code> from <code>archive.zip</code> archive.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops -extract archive.zip single.pdf
diff --git a/docs/reference/tools/extract/index.html b/docs/reference/tools/extract/index.html
index 9803d21..f1e116f 100644
--- a/docs/reference/tools/extract/index.html
+++ b/docs/reference/tools/extract/index.html
@@ -3,9 +3,9 @@
Usage: ops -extract file.(zip|tgz|tar[.gz|.bz2|.xz]) target Example Extract file named single.pdf from archive.zip archive.
ops -extract archive.zip single.pdf "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="extract"><meta itemprop=description content="Extract one single file from a .zip .tar, .tgz, .tar.gz, tar.bz2, tar.gz.
Usage: ops -extract file.(zip|tgz|tar[.gz|.bz2|.xz]) target Example Extract file named single.pdf from archive.zip archive.
-ops -extract archive.zip single.pdf "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="29"><meta name=twitter:card content="summary"><meta name=twitter:title content="extract"><meta name=twitter:description content="Extract one single file from a .zip .tar, .tgz, .tar.gz, tar.bz2, tar.gz.
+ops -extract archive.zip single.pdf "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="29"><meta name=twitter:card content="summary"><meta name=twitter:title content="extract"><meta name=twitter:description content="Extract one single file from a .zip .tar, .tgz, .tar.gz, tar.bz2, tar.gz.
Usage: ops -extract file.(zip|tgz|tar[.gz|.bz2|.xz]) target Example Extract file named single.pdf from archive.zip archive.
-ops -extract archive.zip single.pdf "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data- [...]
+ops -extract archive.zip single.pdf "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data- [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -94,7 +94,7 @@ ops -extract archive.zip single.pdf "><link rel=preload href=/scss/main.min.19cc
</span></span><span style=display:flex><span> ops -extract file.(zip|tgz|tar[.gz|.bz2|.xz]) target
</span></span></code></pre></div><h2 id=example>Example</h2><p>Extract file named <code>single.pdf</code> from <code>archive.zip</code> archive.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops -extract archive.zip single.pdf
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/filetype/_print/index.html b/docs/reference/tools/filetype/_print/index.html
index 1499970..c1a14be 100644
--- a/docs/reference/tools/filetype/_print/index.html
+++ b/docs/reference/tools/filetype/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/filetype/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/filetype/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/fav [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/filetype/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="filetype"><meta property="og:description" content="Show extension and MIME type of a file. Supported types are documented here
Usage: ops -filetype [-h] [-e] [-m] FILE Options -h shows this help -e show file standard extension -m show file mime type Examples File Mime type ops -filetype -m `which ops` This will output the ops executable type: application/x-mach-binary or application/x-executable"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="filetype"><meta itemprop=description content="Show extension and MIME type of a file. Supported types are d [...]
-Usage: ops -filetype [-h] [-e] [-m] FILE Options -h shows this help -e show file standard extension -m show file mime type Examples File Mime type ops -filetype -m `which ops` This will output the ops executable type: application/x-mach-binary or application/x-executable"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="54"><meta name=twitter:card content="summary"><meta name=twitter:title content="filetype"><meta name=twitter:description [...]
-Usage: ops -filetype [-h] [-e] [-m] FILE Options -h shows this help -e show file standard extension -m show file mime type Examples File Mime type ops -filetype -m `which ops` This will output the ops executable type: application/x-mach-binary or application/x-executable"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=styl [...]
+Usage: ops -filetype [-h] [-e] [-m] FILE Options -h shows this help -e show file standard extension -m show file mime type Examples File Mime type ops -filetype -m `which ops` This will output the ops executable type: application/x-mach-binary or application/x-executable"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="54"><meta name=twitter:card content="summary"><meta name=twitter:title content="filetype"><meta name=twitter:description [...]
+Usage: ops -filetype [-h] [-e] [-m] FILE Options -h shows this help -e show file standard extension -m show file mime type Examples File Mime type ops -filetype -m `which ops` This will output the ops executable type: application/x-mach-binary or application/x-executable"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=styl [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/filetype/>Return to the regular view of this page</a>.</p></div><h1 class=title>filetype</h1><ul></ul><div class=content><p>Show extension and MIME type of a file.
Supported types are documented <a href="https://github.com/h2non/filetype?tab=readme-ov-file#supported-types">here</a></p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -filetype [-h] [-e] [-m] FILE
diff --git a/docs/reference/tools/filetype/index.html b/docs/reference/tools/filetype/index.html
index 46a53e6..57d27e8 100644
--- a/docs/reference/tools/filetype/index.html
+++ b/docs/reference/tools/filetype/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/filetype/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/filetype/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/ [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/filetype/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="filetype"><meta property="og:description" content="Show extension and MIME type of a file. Supported types are documented here
Usage: ops -filetype [-h] [-e] [-m] FILE Options -h shows this help -e show file standard extension -m show file mime type Examples File Mime type ops -filetype -m `which ops` This will output the ops executable type: application/x-mach-binary or application/x-executable"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="filetype"><meta itemprop=description content="Show extension and MIME type of a file. Supported types are d [...]
-Usage: ops -filetype [-h] [-e] [-m] FILE Options -h shows this help -e show file standard extension -m show file mime type Examples File Mime type ops -filetype -m `which ops` This will output the ops executable type: application/x-mach-binary or application/x-executable"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="54"><meta name=twitter:card content="summary"><meta name=twitter:title content="filetype"><meta name=twitter:description [...]
-Usage: ops -filetype [-h] [-e] [-m] FILE Options -h shows this help -e show file standard extension -m show file mime type Examples File Mime type ops -filetype -m `which ops` This will output the ops executable type: application/x-mach-binary or application/x-executable"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=styl [...]
+Usage: ops -filetype [-h] [-e] [-m] FILE Options -h shows this help -e show file standard extension -m show file mime type Examples File Mime type ops -filetype -m `which ops` This will output the ops executable type: application/x-mach-binary or application/x-executable"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="54"><meta name=twitter:card content="summary"><meta name=twitter:title content="filetype"><meta name=twitter:description [...]
+Usage: ops -filetype [-h] [-e] [-m] FILE Options -h shows this help -e show file standard extension -m show file mime type Examples File Mime type ops -filetype -m `which ops` This will output the ops executable type: application/x-mach-binary or application/x-executable"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=styl [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -96,7 +96,7 @@ Supported types are documented <a href="https://github.com/h2non/filetype?tab=re
</code></pre><h2 id=examples>Examples</h2><h3 id=file-mime-type>File Mime type</h3><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops -filetype -m <span style=color:#4e9a06>`</span>which ops<span style=color:#4e9a06>`</span>
</span></span></code></pre></div><p>This will output the ops executable type:
<code>application/x-mach-binary</code> or <code>application/x-executable</code></p><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes< [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/index.html b/docs/reference/tools/index.html
index e3042c9..d9f2a9e 100644
--- a/docs/reference/tools/index.html
+++ b/docs/reference/tools/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-tou [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tools"><meta property="og:description" content="Available tool (embedded commands) in ops:"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Tools"><meta itemprop=description content="Available tool (embedded commands) i [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tools"><meta property="og:description" content="Available tool (embedded commands) in ops:"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Tools"><meta itemprop=description content="Available tool (embedded commands) i [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -85,7 +85,7 @@
<a href="https://github.com/apache/openserverless/issues/issues/new?title=Tools" class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/openserverless/issues/new class="td-page-meta--project td-page-meta__project-issue" target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a>
<a id=print href=/docs/reference/tools/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class="breadcrumb-item active" aria-current=page>Tools</li></ol></nav><div class=td-content><h1>Tools</h1><header [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/needupdate/_print/index.html b/docs/reference/tools/needupdate/_print/index.html
index 88a265e..892ee87 100644
--- a/docs/reference/tools/needupdate/_print/index.html
+++ b/docs/reference/tools/needupdate/_print/index.html
@@ -5,10 +5,10 @@ Usage: ops -needupdate <versionA> <versionB> Options -h, --help print this help
1 "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="needupdate"><meta itemprop=description content="Check if a semver version A > semver version B. Exits with 0 if greater, 1 otherwise.
Usage: ops -needupdate <versionA> <versionB> Options -h, --help print this help info Examples Update is needed ops -needupdate 1.0.1 1.0.0; echo $? This will output:
0 Update is not needed ops -needupdate 1.0.0 1.0.1; echo $? This will output:
-1 "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="57"><meta name=twitter:card content="summary"><meta name=twitter:title content="needupdate"><meta name=twitter:description content="Check if a semver version A > semver version B. Exits with 0 if greater, 1 otherwise.
+1 "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="57"><meta name=twitter:card content="summary"><meta name=twitter:title content="needupdate"><meta name=twitter:description content="Check if a semver version A > semver version B. Exits with 0 if greater, 1 otherwise.
Usage: ops -needupdate <versionA> <versionB> Options -h, --help print this help info Examples Update is needed ops -needupdate 1.0.1 1.0.0; echo $? This will output:
0 Update is not needed ops -needupdate 1.0.0 1.0.1; echo $? This will output:
-1 "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="containe [...]
+1 "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="containe [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/needupdate/>Return to the regular view of this page</a>.</p></div><h1 class=title>needupdate</h1><ul></ul><div class=content><p>Check if a semver version A > semver version B.
Exits with 0 if greater, 1 otherwise.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -needupdate <versionA> <versionB>
diff --git a/docs/reference/tools/needupdate/index.html b/docs/reference/tools/needupdate/index.html
index 36dc069..702e414 100644
--- a/docs/reference/tools/needupdate/index.html
+++ b/docs/reference/tools/needupdate/index.html
@@ -5,10 +5,10 @@ Usage: ops -needupdate <versionA> <versionB> Options -h, --help print this help
1 "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="needupdate"><meta itemprop=description content="Check if a semver version A > semver version B. Exits with 0 if greater, 1 otherwise.
Usage: ops -needupdate <versionA> <versionB> Options -h, --help print this help info Examples Update is needed ops -needupdate 1.0.1 1.0.0; echo $? This will output:
0 Update is not needed ops -needupdate 1.0.0 1.0.1; echo $? This will output:
-1 "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="57"><meta name=twitter:card content="summary"><meta name=twitter:title content="needupdate"><meta name=twitter:description content="Check if a semver version A > semver version B. Exits with 0 if greater, 1 otherwise.
+1 "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="57"><meta name=twitter:card content="summary"><meta name=twitter:title content="needupdate"><meta name=twitter:description content="Check if a semver version A > semver version B. Exits with 0 if greater, 1 otherwise.
Usage: ops -needupdate <versionA> <versionB> Options -h, --help print this help info Examples Update is needed ops -needupdate 1.0.1 1.0.0; echo $? This will output:
0 Update is not needed ops -needupdate 1.0.0 1.0.1; echo $? This will output:
-1 "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="containe [...]
+1 "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="containe [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -102,7 +102,7 @@ Exits with 0 if greater, 1 otherwise.</p><div class=highlight><pre tabindex=0 st
</span></span></code></pre></div><h3 id=update-is-not-needed>Update is not needed</h3><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops -needupdate 1.0.0 1.0.1<span style=color:#000;font-weight:700>;</span> <span style=color:#204a87>echo</span> <span style=color:#000>$?</span>
</span></span></code></pre></div><p>This will output:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>1
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/opspath/_print/index.html b/docs/reference/tools/opspath/_print/index.html
index 655fb7f..cd66db9 100644
--- a/docs/reference/tools/opspath/_print/index.html
+++ b/docs/reference/tools/opspath/_print/index.html
@@ -5,10 +5,10 @@ Usage: ops -opspath <path> Options:
/home/user/my/custom/dir/my-file.txt "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="opspath"><meta itemprop=description content="Join a relative path to the path from where ops was executed. This command is useful when creating custom tasks ( e.g. an ops plugin).
Usage: ops -opspath <path> Options:
-h, --help print this help info Examples You are executing in directory /home/user/my/custom/dir ops -opspath my-file.txt This will output:
-/home/user/my/custom/dir/my-file.txt "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="50"><meta name=twitter:card content="summary"><meta name=twitter:title content="opspath"><meta name=twitter:description content="Join a relative path to the path from where ops was executed. This command is useful when creating custom tasks ( e.g. an ops plugin).
+/home/user/my/custom/dir/my-file.txt "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="50"><meta name=twitter:card content="summary"><meta name=twitter:title content="opspath"><meta name=twitter:description content="Join a relative path to the path from where ops was executed. This command is useful when creating custom tasks ( e.g. an ops plugin).
Usage: ops -opspath <path> Options:
-h, --help print this help info Examples You are executing in directory /home/user/my/custom/dir ops -opspath my-file.txt This will output:
-/home/user/my/custom/dir/my-file.txt "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data [...]
+/home/user/my/custom/dir/my-file.txt "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/opspath/>Return to the regular view of this page</a>.</p></div><h1 class=title>opspath</h1><ul></ul><div class=content><p>Join a relative path to the path from where <code>ops</code> was executed.
This command is useful when creating custom tasks ( e.g. an ops plugin).</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -opspath <path>
diff --git a/docs/reference/tools/opspath/index.html b/docs/reference/tools/opspath/index.html
index d247374..b329122 100644
--- a/docs/reference/tools/opspath/index.html
+++ b/docs/reference/tools/opspath/index.html
@@ -5,10 +5,10 @@ Usage: ops -opspath <path> Options:
/home/user/my/custom/dir/my-file.txt "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="opspath"><meta itemprop=description content="Join a relative path to the path from where ops was executed. This command is useful when creating custom tasks ( e.g. an ops plugin).
Usage: ops -opspath <path> Options:
-h, --help print this help info Examples You are executing in directory /home/user/my/custom/dir ops -opspath my-file.txt This will output:
-/home/user/my/custom/dir/my-file.txt "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="50"><meta name=twitter:card content="summary"><meta name=twitter:title content="opspath"><meta name=twitter:description content="Join a relative path to the path from where ops was executed. This command is useful when creating custom tasks ( e.g. an ops plugin).
+/home/user/my/custom/dir/my-file.txt "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="50"><meta name=twitter:card content="summary"><meta name=twitter:title content="opspath"><meta name=twitter:description content="Join a relative path to the path from where ops was executed. This command is useful when creating custom tasks ( e.g. an ops plugin).
Usage: ops -opspath <path> Options:
-h, --help print this help info Examples You are executing in directory /home/user/my/custom/dir ops -opspath my-file.txt This will output:
-/home/user/my/custom/dir/my-file.txt "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data [...]
+/home/user/my/custom/dir/my-file.txt "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -100,7 +100,7 @@ This command is useful when creating custom tasks ( e.g. an ops plugin).</p><div
</code></pre><h2 id=examples>Examples</h2><h3 id=you-are-executing-in-directory-homeusermycustomdir>You are executing in directory <code>/home/user/my/custom/dir</code></h3><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops -opspath my-file.txt
</span></span></code></pre></div><p>This will output:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>/home/user/my/custom/dir/my-file.txt
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/random/_print/index.html b/docs/reference/tools/random/_print/index.html
index 5648654..e4aec08 100644
--- a/docs/reference/tools/random/_print/index.html
+++ b/docs/reference/tools/random/_print/index.html
@@ -3,9 +3,9 @@
Usage: ops -random [options] Options -h, --help shows this help -u, --uuid generates a random uuid v4 --int <max> [min] generates a random non-negative integer between min and max (default min=0) --str <len> [<characters>] generates an alphanumeric string of length <len> from the set of <characters> provided (default <characters>=a-zA-Z0-9) Examples Random uuid v4: ops -random -u This will output something like:
5b2c45ef-7d15-4a15-84c6-29144393b621 Random integer between max and min ops -random --int 100 60 This will output something like:"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="random"><meta itemprop=description content="Generate random numbers, strings and uuids
Usage: ops -random [options] Options -h, --help shows this help -u, --uuid generates a random uuid v4 --int <max> [min] generates a random non-negative integer between min and max (default min=0) --str <len> [<characters>] generates an alphanumeric string of length <len> from the set of <characters> provided (default <characters>=a-zA-Z0-9) Examples Random uuid v4: ops -random -u This will output something like:
-5b2c45ef-7d15-4a15-84c6-29144393b621 Random integer between max and min ops -random --int 100 60 This will output something like:"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="85"><meta name=twitter:card content="summary"><meta name=twitter:title content="random"><meta name=twitter:description content="Generate random numbers, strings and uuids
+5b2c45ef-7d15-4a15-84c6-29144393b621 Random integer between max and min ops -random --int 100 60 This will output something like:"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="85"><meta name=twitter:card content="summary"><meta name=twitter:title content="random"><meta name=twitter:description content="Generate random numbers, strings and uuids
Usage: ops -random [options] Options -h, --help shows this help -u, --uuid generates a random uuid v4 --int <max> [min] generates a random non-negative integer between min and max (default min=0) --str <len> [<characters>] generates an alphanumeric string of length <len> from the set of <characters> provided (default <characters>=a-zA-Z0-9) Examples Random uuid v4: ops -random -u This will output something like:
-5b2c45ef-7d15-4a15-84c6-29144393b621 Random integer between max and min ops -random --int 100 60 This will output something like:"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/ [...]
+5b2c45ef-7d15-4a15-84c6-29144393b621 Random integer between max and min ops -random --int 100 60 This will output something like:"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/ [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/random/>Return to the regular view of this page</a>.</p></div><h1 class=title>random</h1><ul></ul><div class=content><p>Generate random numbers, strings and uuids</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -random [options]
</span></span></code></pre></div><h2 id=options>Options</h2><pre tabindex=0><code>-h, --help shows this help
diff --git a/docs/reference/tools/random/index.html b/docs/reference/tools/random/index.html
index ed50768..011f6ee 100644
--- a/docs/reference/tools/random/index.html
+++ b/docs/reference/tools/random/index.html
@@ -3,9 +3,9 @@
Usage: ops -random [options] Options -h, --help shows this help -u, --uuid generates a random uuid v4 --int <max> [min] generates a random non-negative integer between min and max (default min=0) --str <len> [<characters>] generates an alphanumeric string of length <len> from the set of <characters> provided (default <characters>=a-zA-Z0-9) Examples Random uuid v4: ops -random -u This will output something like:
5b2c45ef-7d15-4a15-84c6-29144393b621 Random integer between max and min ops -random --int 100 60 This will output something like:"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="random"><meta itemprop=description content="Generate random numbers, strings and uuids
Usage: ops -random [options] Options -h, --help shows this help -u, --uuid generates a random uuid v4 --int <max> [min] generates a random non-negative integer between min and max (default min=0) --str <len> [<characters>] generates an alphanumeric string of length <len> from the set of <characters> provided (default <characters>=a-zA-Z0-9) Examples Random uuid v4: ops -random -u This will output something like:
-5b2c45ef-7d15-4a15-84c6-29144393b621 Random integer between max and min ops -random --int 100 60 This will output something like:"><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="85"><meta name=twitter:card content="summary"><meta name=twitter:title content="random"><meta name=twitter:description content="Generate random numbers, strings and uuids
+5b2c45ef-7d15-4a15-84c6-29144393b621 Random integer between max and min ops -random --int 100 60 This will output something like:"><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="85"><meta name=twitter:card content="summary"><meta name=twitter:title content="random"><meta name=twitter:description content="Generate random numbers, strings and uuids
Usage: ops -random [options] Options -h, --help shows this help -u, --uuid generates a random uuid v4 --int <max> [min] generates a random non-negative integer between min and max (default min=0) --str <len> [<characters>] generates an alphanumeric string of length <len> from the set of <characters> provided (default <characters>=a-zA-Z0-9) Examples Random uuid v4: ops -random -u This will output something like:
-5b2c45ef-7d15-4a15-84c6-29144393b621 Random integer between max and min ops -random --int 100 60 This will output something like:"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/ [...]
+5b2c45ef-7d15-4a15-84c6-29144393b621 Random integer between max and min ops -random --int 100 60 This will output something like:"><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/ [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -101,7 +101,7 @@ Usage: ops -random [options] Options -h, --help shows this help -u, --uuid gener
</span></span></code></pre></div><h3 id=random-integer-between-max-and-min>Random integer between max and min</h3><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops -random --int <span style=color:#0000cf;font-weight:700>100</span> <span style=color:#0000cf;font-weight:700>60</span>
</span></span></code></pre></div><p>This will output something like:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>78
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/remove/_print/index.html b/docs/reference/tools/remove/_print/index.html
index da25906..a5a8d2e 100644
--- a/docs/reference/tools/remove/_print/index.html
+++ b/docs/reference/tools/remove/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/remove/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/remove/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicon [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/remove/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="remove"><meta property="og:description" content="Remove a file
Usage: ops -remove <filename> "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="remove"><meta itemprop=description content="Remove a file
-Usage: ops -remove <filename> "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="7"><meta name=twitter:card content="summary"><meta name=twitter:title content="remove"><meta name=twitter:description content="Remove a file
-Usage: ops -remove <filename> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-the [...]
+Usage: ops -remove <filename> "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="7"><meta name=twitter:card content="summary"><meta name=twitter:title content="remove"><meta name=twitter:description content="Remove a file
+Usage: ops -remove <filename> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-the [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/remove/>Return to the regular view of this page</a>.</p></div><h1 class=title>remove</h1><ul></ul><div class=content><p>Remove a file</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -remove <filename>
</span></span></code></pre></div></div></div></main></div></div><footer class="td-footer row d-print-none"><div class=container-fluid><div class="disclaimer text-center"><div class="row mx-md-2"><div class="td-footer__left col-6 col-sm-2 order-sm-1"> </div><div class="td-footer__right col-6 col-sm-2 order-sm-3"> </div><div class="td-footer__center col-12 col-sm-8 py-2 order-sm-2"><p>Apache Openserverless™ is an effort undergoing incubation at The Apache Software Foundation (ASF),
diff --git a/docs/reference/tools/remove/index.html b/docs/reference/tools/remove/index.html
index 08dadf5..8a666e8 100644
--- a/docs/reference/tools/remove/index.html
+++ b/docs/reference/tools/remove/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/remove/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/remove/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favi [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/remove/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="remove"><meta property="og:description" content="Remove a file
Usage: ops -remove <filename> "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="remove"><meta itemprop=description content="Remove a file
-Usage: ops -remove <filename> "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="7"><meta name=twitter:card content="summary"><meta name=twitter:title content="remove"><meta name=twitter:description content="Remove a file
-Usage: ops -remove <filename> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-the [...]
+Usage: ops -remove <filename> "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="7"><meta name=twitter:card content="summary"><meta name=twitter:title content="remove"><meta name=twitter:description content="Remove a file
+Usage: ops -remove <filename> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-the [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -90,7 +90,7 @@ Usage: ops -remove <filename> "><link rel=preload href=/scss/main.min.19cc757d76
<a id=print href=/docs/reference/tools/remove/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class=breadcrumb-item><a href=/docs/reference/tools/>Tools</a></li><li class="breadcrumb-item active" aria- [...]
</span></span><span style=display:flex><span> ops -remove <filename>
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/rename/_print/index.html b/docs/reference/tools/rename/_print/index.html
index c6f1153..8562eed 100644
--- a/docs/reference/tools/rename/_print/index.html
+++ b/docs/reference/tools/rename/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/rename/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/rename/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicon [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/rename/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="rename"><meta property="og:description" content="Rename a file
Usage: ops -rename <source> <destination> "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="rename"><meta itemprop=description content="Rename a file
-Usage: ops -rename <source> <destination> "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="8"><meta name=twitter:card content="summary"><meta name=twitter:title content="rename"><meta name=twitter:description content="Rename a file
-Usage: ops -rename <source> <destination> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" [...]
+Usage: ops -rename <source> <destination> "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="8"><meta name=twitter:card content="summary"><meta name=twitter:title content="rename"><meta name=twitter:description content="Rename a file
+Usage: ops -rename <source> <destination> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/rename/>Return to the regular view of this page</a>.</p></div><h1 class=title>rename</h1><ul></ul><div class=content><p>Rename a file</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -rename <source> <destination>
</span></span></code></pre></div></div></div></main></div></div><footer class="td-footer row d-print-none"><div class=container-fluid><div class="disclaimer text-center"><div class="row mx-md-2"><div class="td-footer__left col-6 col-sm-2 order-sm-1"> </div><div class="td-footer__right col-6 col-sm-2 order-sm-3"> </div><div class="td-footer__center col-12 col-sm-8 py-2 order-sm-2"><p>Apache Openserverless™ is an effort undergoing incubation at The Apache Software Foundation (ASF),
diff --git a/docs/reference/tools/rename/index.html b/docs/reference/tools/rename/index.html
index ad7b148..9adeb36 100644
--- a/docs/reference/tools/rename/index.html
+++ b/docs/reference/tools/rename/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/rename/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/rename/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favi [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/rename/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="rename"><meta property="og:description" content="Rename a file
Usage: ops -rename <source> <destination> "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="rename"><meta itemprop=description content="Rename a file
-Usage: ops -rename <source> <destination> "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="8"><meta name=twitter:card content="summary"><meta name=twitter:title content="rename"><meta name=twitter:description content="Rename a file
-Usage: ops -rename <source> <destination> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" [...]
+Usage: ops -rename <source> <destination> "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="8"><meta name=twitter:card content="summary"><meta name=twitter:title content="rename"><meta name=twitter:description content="Rename a file
+Usage: ops -rename <source> <destination> "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -90,7 +90,7 @@ Usage: ops -rename <source> <destination> "><link rel=preload href=/scss/main.mi
<a id=print href=/docs/reference/tools/rename/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class=breadcrumb-item><a href=/docs/reference/tools/>Tools</a></li><li class="breadcrumb-item active" aria- [...]
</span></span><span style=display:flex><span> ops -rename <source> <destination>
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/retry/_print/index.html b/docs/reference/tools/retry/_print/index.html
index d99308d..65e90a2 100644
--- a/docs/reference/tools/retry/_print/index.html
+++ b/docs/reference/tools/retry/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/retry/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/retry/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/ [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/retry/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="retry"><meta property="og:description" content="Usage: ops -retry [options] task [task options] Options -h, --help Print help message -t, --tries=# Set max retries: Default 10 -m, --max=secs Maximum time to run (set to 0 to disable): Default 60 seconds -v, --verbose Verbose ou [...]
ops -retry -t 2 ops action list "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="retry"><meta itemprop=description content="Usage: ops -retry [options] task [task options] Options -h, --help Print help message -t, --tries=# Set max retries: Default 10 -m, --max=secs Maximum time to run (set to 0 to disable): Default 60 seconds -v, --verbose Verbose output Example Retry two times to get the ops action list
-ops -retry -t 2 ops action list "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="55"><meta name=twitter:card content="summary"><meta name=twitter:title content="retry"><meta name=twitter:description content="Usage: ops -retry [options] task [task options] Options -h, --help Print help message -t, --tries=# Set max retries: Default 10 -m, --max=secs Maximum time to run (set to 0 to disable): Default 60 seconds -v, --verbose Verbose output [...]
-ops -retry -t 2 ops action list "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-t [...]
+ops -retry -t 2 ops action list "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="55"><meta name=twitter:card content="summary"><meta name=twitter:title content="retry"><meta name=twitter:description content="Usage: ops -retry [options] task [task options] Options -h, --help Print help message -t, --tries=# Set max retries: Default 10 -m, --max=secs Maximum time to run (set to 0 to disable): Default 60 seconds -v, --verbose Verbose output [...]
+ops -retry -t 2 ops action list "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-t [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/retry/>Return to the regular view of this page</a>.</p></div><h1 class=title>retry</h1><ul></ul><div class=content><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -retry [options] task [task options]
</span></span></code></pre></div><h2 id=options>Options</h2><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>-h, --help Print help message
diff --git a/docs/reference/tools/retry/index.html b/docs/reference/tools/retry/index.html
index 8b021b1..b855c28 100644
--- a/docs/reference/tools/retry/index.html
+++ b/docs/reference/tools/retry/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/retry/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/retry/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favico [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/retry/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="retry"><meta property="og:description" content="Usage: ops -retry [options] task [task options] Options -h, --help Print help message -t, --tries=# Set max retries: Default 10 -m, --max=secs Maximum time to run (set to 0 to disable): Default 60 seconds -v, --verbose Verbose ou [...]
ops -retry -t 2 ops action list "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="retry"><meta itemprop=description content="Usage: ops -retry [options] task [task options] Options -h, --help Print help message -t, --tries=# Set max retries: Default 10 -m, --max=secs Maximum time to run (set to 0 to disable): Default 60 seconds -v, --verbose Verbose output Example Retry two times to get the ops action list
-ops -retry -t 2 ops action list "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="55"><meta name=twitter:card content="summary"><meta name=twitter:title content="retry"><meta name=twitter:description content="Usage: ops -retry [options] task [task options] Options -h, --help Print help message -t, --tries=# Set max retries: Default 10 -m, --max=secs Maximum time to run (set to 0 to disable): Default 60 seconds -v, --verbose Verbose output [...]
-ops -retry -t 2 ops action list "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-t [...]
+ops -retry -t 2 ops action list "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="55"><meta name=twitter:card content="summary"><meta name=twitter:title content="retry"><meta name=twitter:description content="Usage: ops -retry [options] task [task options] Options -h, --help Print help message -t, --tries=# Set max retries: Default 10 -m, --max=secs Maximum time to run (set to 0 to disable): Default 60 seconds -v, --verbose Verbose output [...]
+ops -retry -t 2 ops action list "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-t [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -95,7 +95,7 @@ ops -retry -t 2 ops action list "><link rel=preload href=/scss/main.min.19cc757d
</span></span><span style=display:flex><span>-v, --verbose Verbose output
</span></span></code></pre></div><h2 id=example>Example</h2><p>Retry two times to get the ops action list</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops -retry -t <span style=color:#0000cf;font-weight:700>2</span> ops action list
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/sh/_print/index.html b/docs/reference/tools/sh/_print/index.html
index ed994ef..466958e 100644
--- a/docs/reference/tools/sh/_print/index.html
+++ b/docs/reference/tools/sh/_print/index.html
@@ -3,9 +3,9 @@
Without args, starts an interactive shell. Otherwise execute the script specified on command line.
Usage: ops sh [<script>|-h|--help] "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="sh"><meta itemprop=description content="sh is the mvdan shell using the ops environment.
Without args, starts an interactive shell. Otherwise execute the script specified on command line.
-Usage: ops sh [<script>|-h|--help] "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="27"><meta name=twitter:card content="summary"><meta name=twitter:title content="sh"><meta name=twitter:description content="sh is the mvdan shell using the ops environment.
+Usage: ops sh [<script>|-h|--help] "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="27"><meta name=twitter:card content="summary"><meta name=twitter:title content="sh"><meta name=twitter:description content="sh is the mvdan shell using the ops environment.
Without args, starts an interactive shell. Otherwise execute the script specified on command line.
-Usage: ops sh [<script>|-h|--help] "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-b [...]
+Usage: ops sh [<script>|-h|--help] "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-b [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/sh/>Return to the regular view of this page</a>.</p></div><h1 class=title>sh</h1><ul></ul><div class=content><p><code>sh</code> is the mvdan shell using the ops environment.</p><p>Without args, starts an interactive shell. Otherwise execute the script specified on command line.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><c [...]
</span></span><span style=display:flex><span> ops sh [<script>|-h|--help]
</span></span></code></pre></div></div></div></main></div></div><footer class="td-footer row d-print-none"><div class=container-fluid><div class="disclaimer text-center"><div class="row mx-md-2"><div class="td-footer__left col-6 col-sm-2 order-sm-1"> </div><div class="td-footer__right col-6 col-sm-2 order-sm-3"> </div><div class="td-footer__center col-12 col-sm-8 py-2 order-sm-2"><p>Apache Openserverless™ is an effort undergoing incubation at The Apache Software Foundation (ASF),
diff --git a/docs/reference/tools/sh/index.html b/docs/reference/tools/sh/index.html
index 9327630..fe93d2e 100644
--- a/docs/reference/tools/sh/index.html
+++ b/docs/reference/tools/sh/index.html
@@ -3,9 +3,9 @@
Without args, starts an interactive shell. Otherwise execute the script specified on command line.
Usage: ops sh [<script>|-h|--help] "><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="sh"><meta itemprop=description content="sh is the mvdan shell using the ops environment.
Without args, starts an interactive shell. Otherwise execute the script specified on command line.
-Usage: ops sh [<script>|-h|--help] "><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="27"><meta name=twitter:card content="summary"><meta name=twitter:title content="sh"><meta name=twitter:description content="sh is the mvdan shell using the ops environment.
+Usage: ops sh [<script>|-h|--help] "><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="27"><meta name=twitter:card content="summary"><meta name=twitter:title content="sh"><meta name=twitter:description content="sh is the mvdan shell using the ops environment.
Without args, starts an interactive shell. Otherwise execute the script specified on command line.
-Usage: ops sh [<script>|-h|--help] "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-b [...]
+Usage: ops sh [<script>|-h|--help] "><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-b [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -93,7 +93,7 @@ Usage: ops sh [<script>|-h|--help] "><link rel=preload href=/scss/main.min.19cc7
<a id=print href=/docs/reference/tools/sh/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/reference/>Reference</a></li><li class=breadcrumb-item><a href=/docs/reference/tools/>Tools</a></li><li class="breadcrumb-item active" aria-curr [...]
</span></span><span style=display:flex><span> ops sh [<script>|-h|--help]
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/urlenc/_print/index.html b/docs/reference/tools/urlenc/_print/index.html
index f6632d0..aa9c82f 100644
--- a/docs/reference/tools/urlenc/_print/index.html
+++ b/docs/reference/tools/urlenc/_print/index.html
@@ -3,9 +3,9 @@
Usage: ops -urlenc [-e] [-s <string>] [parameters] Options -e Encode parameter values from environment variables -h Show help -s string Separator for concatenating the parameters (default "&") Examples ops -urlenc a=1 b=2 This will output:
a%3D1&b%3D2 '><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="urlenc"><meta itemprop=description content='urlencode parameters using the default & separator (or a specific one using -s flag). Optionally, encode the values retrieving them from environment variables.
Usage: ops -urlenc [-e] [-s <string>] [parameters] Options -e Encode parameter values from environment variables -h Show help -s string Separator for concatenating the parameters (default "&") Examples ops -urlenc a=1 b=2 This will output:
-a%3D1&b%3D2 '><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="59"><meta name=twitter:card content="summary"><meta name=twitter:title content="urlenc"><meta name=twitter:description content='urlencode parameters using the default & separator (or a specific one using -s flag). Optionally, encode the values retrieving them from environment variables.
+a%3D1&b%3D2 '><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="59"><meta name=twitter:card content="summary"><meta name=twitter:title content="urlenc"><meta name=twitter:description content='urlencode parameters using the default & separator (or a specific one using -s flag). Optionally, encode the values retrieving them from environment variables.
Usage: ops -urlenc [-e] [-s <string>] [parameters] Options -e Encode parameter values from environment variables -h Show help -s string Separator for concatenating the parameters (default "&") Examples ops -urlenc a=1 b=2 This will output:
-a%3D1&b%3D2 '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div c [...]
+a%3D1&b%3D2 '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div c [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/urlenc/>Return to the regular view of this page</a>.</p></div><h1 class=title>urlenc</h1><ul></ul><div class=content><p>urlencode parameters using the default & separator (or a specific one using -s flag).
Optionally, encode the values retrieving them from environment variables.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span> ops -urlenc [-e] [-s <string>] [parameters]
diff --git a/docs/reference/tools/urlenc/index.html b/docs/reference/tools/urlenc/index.html
index ecb42bf..bf2e834 100644
--- a/docs/reference/tools/urlenc/index.html
+++ b/docs/reference/tools/urlenc/index.html
@@ -3,9 +3,9 @@
Usage: ops -urlenc [-e] [-s <string>] [parameters] Options -e Encode parameter values from environment variables -h Show help -s string Separator for concatenating the parameters (default "&") Examples ops -urlenc a=1 b=2 This will output:
a%3D1&b%3D2 '><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="urlenc"><meta itemprop=description content='urlencode parameters using the default & separator (or a specific one using -s flag). Optionally, encode the values retrieving them from environment variables.
Usage: ops -urlenc [-e] [-s <string>] [parameters] Options -e Encode parameter values from environment variables -h Show help -s string Separator for concatenating the parameters (default "&") Examples ops -urlenc a=1 b=2 This will output:
-a%3D1&b%3D2 '><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="59"><meta name=twitter:card content="summary"><meta name=twitter:title content="urlenc"><meta name=twitter:description content='urlencode parameters using the default & separator (or a specific one using -s flag). Optionally, encode the values retrieving them from environment variables.
+a%3D1&b%3D2 '><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="59"><meta name=twitter:card content="summary"><meta name=twitter:title content="urlenc"><meta name=twitter:description content='urlencode parameters using the default & separator (or a specific one using -s flag). Optionally, encode the values retrieving them from environment variables.
Usage: ops -urlenc [-e] [-s <string>] [parameters] Options -e Encode parameter values from environment variables -h Show help -s string Separator for concatenating the parameters (default "&") Examples ops -urlenc a=1 b=2 This will output:
-a%3D1&b%3D2 '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div c [...]
+a%3D1&b%3D2 '><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div c [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -99,7 +99,7 @@ Optionally, encode the values retrieving them from environment variables.</p><di
</code></pre><h2 id=examples>Examples</h2><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops -urlenc <span style=color:#000>a</span><span style=color:#ce5c00;font-weight:700>=</span><span style=color:#0000cf;font-weight:700>1</span> <span style=color:#000>b</span><span style=color:#ce5c00;font-weight:700>=</span><span style=color:#0000cf;font-weight:700>2</span>
</span></span></code></pre></div><p>This will output:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>a%3D1&b%3D2
</span></span></code></pre></div><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/reference/tools/validate/_print/index.html b/docs/reference/tools/validate/_print/index.html
index 6affa0a..e654d39 100644
--- a/docs/reference/tools/validate/_print/index.html
+++ b/docs/reference/tools/validate/_print/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/reference/tools/validate/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/validate/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/fav [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/validate/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="validate"><meta property="og:description" content="Check if a value is valid according to the given constraints. If -e is specified, the value is retrieved from the environment variable with the given name.
Usage: ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>] Options: -e Retrieve value from the environment variable with the given name. -h Print this help message. -m Check if the value is a valid email address. -n Check if the value is a number."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="validate"><meta itemprop=description content="Check if a value is valid according to the given constraints. If -e is spec [...]
-Usage: ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>] Options: -e Retrieve value from the environment variable with the given name. -h Print this help message. -m Check if the value is a valid email address. -n Check if the value is a number."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="85"><meta name=twitter:card content="summary"><meta name=twitter:title content="validate"><meta name=twitter:description content="Check [...]
-Usage: ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>] Options: -e Retrieve value from the environment variable with the given name. -h Print this help message. -m Check if the value is a valid email address. -n Check if the value is a number."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integri [...]
+Usage: ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>] Options: -e Retrieve value from the environment variable with the given name. -h Print this help message. -m Check if the value is a valid email address. -n Check if the value is a number."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="85"><meta name=twitter:card content="summary"><meta name=twitter:title content="validate"><meta name=twitter:description content="Check [...]
+Usage: ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>] Options: -e Retrieve value from the environment variable with the given name. -h Print this help message. -m Check if the value is a valid email address. -n Check if the value is a number."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integri [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/reference/tools/validate/>Return to the regular view of this page</a>.</p></div><h1 class=title>validate</h1><ul></ul><div class=content><p>Check if a value is valid according to the given constraints.
If -e is specified, the value is retrieved from the environment variable with the given name.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>Usage:
</span></span><span style=display:flex><span>ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>]
diff --git a/docs/reference/tools/validate/index.html b/docs/reference/tools/validate/index.html
index 28d4ba0..d444a2d 100644
--- a/docs/reference/tools/validate/index.html
+++ b/docs/reference/tools/validate/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/reference/tools/validate/_print/><link rel=alternate type=application/rss+xml href=/docs/reference/tools/validate/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/ [...]
<meta name=description content="A Docsy example site"><meta property="og:url" content="/docs/reference/tools/validate/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="validate"><meta property="og:description" content="Check if a value is valid according to the given constraints. If -e is specified, the value is retrieved from the environment variable with the given name.
Usage: ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>] Options: -e Retrieve value from the environment variable with the given name. -h Print this help message. -m Check if the value is a valid email address. -n Check if the value is a number."><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="validate"><meta itemprop=description content="Check if a value is valid according to the given constraints. If -e is spec [...]
-Usage: ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>] Options: -e Retrieve value from the environment variable with the given name. -h Print this help message. -m Check if the value is a valid email address. -n Check if the value is a number."><meta itemprop=dateModified content="2024-10-29T19:41:06+01:00"><meta itemprop=wordCount content="85"><meta name=twitter:card content="summary"><meta name=twitter:title content="validate"><meta name=twitter:description content="Check [...]
-Usage: ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>] Options: -e Retrieve value from the environment variable with the given name. -h Print this help message. -m Check if the value is a valid email address. -n Check if the value is a number."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integri [...]
+Usage: ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>] Options: -e Retrieve value from the environment variable with the given name. -h Print this help message. -m Check if the value is a valid email address. -n Check if the value is a number."><meta itemprop=dateModified content="2024-10-29T21:27:31+01:00"><meta itemprop=wordCount content="85"><meta name=twitter:card content="summary"><meta name=twitter:title content="validate"><meta name=twitter:description content="Check [...]
+Usage: ops -validate [-e] [-m | -n | -r <regex>] <value> [<message>] Options: -e Retrieve value from the environment variable with the given name. -h Print this help message. -m Check if the value is a valid email address. -n Check if the value is a number."><link rel=preload href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css as=style><link href=/scss/main.min.19cc757d7643534ced6e4e22b958048fcaed7f38defabbadf5b3a5b200ee4d28.css rel=stylesheet integri [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -96,7 +96,7 @@ If -e is specified, the value is retrieved from the environment variable with th
-n Check if the value is a number.
-r string Check if the value matches the given regular expression.
</code></pre><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/tutorial/_print/index.html b/docs/tutorial/_print/index.html
index 0991a78..038f7ce 100644
--- a/docs/tutorial/_print/index.html
+++ b/docs/tutorial/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/tutorial/><link rel=alternate type=application/rss+xml href=/docs/tutorial/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.p [...]
-<meta name=description content="Showcase serverless development in action"><meta property="og:url" content="/docs/tutorial/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tutorial"><meta property="og:description" content="Showcase serverless development in action"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Tutorial"><meta itemprop=description content="Showcase serverle [...]
+<meta name=description content="Showcase serverless development in action"><meta property="og:url" content="/docs/tutorial/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tutorial"><meta property="og:description" content="Showcase serverless development in action"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Tutorial"><meta itemprop=description content="Showcase serverle [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/tutorial/>Return to the regular view of this page</a>.</p></div><h1 class=title>Tutorial</h1><div class=lead>Showcase serverless development in action</div><ul><li>1: <a href=#pg-3b1ec3a9b3851e0ec55c8e2ff8c84699>Getting started</a></li><ul></ul><li>2: <a href=#pg-027017c25c90f3e4086f50e27ba217ca>First steps</a></li><ul></ul><li>3: <a href=#pg-b45007aa6cc09b274b1d98c8a381a96c>Form validation</a></li><ul></u [...]
application using the Command Line Interface (CLI) and Javascript (but
any supported language will do).</p><p>Its purpose is to showcase serverless development in action by creating
diff --git a/docs/tutorial/first-steps/_print/index.html b/docs/tutorial/first-steps/_print/index.html
index 963a91d..d576bf7 100644
--- a/docs/tutorial/first-steps/_print/index.html
+++ b/docs/tutorial/first-steps/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/tutorial/first-steps/><link rel=alternate type=application/rss+xml href=/docs/tutorial/first-steps/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/ap [...]
-<meta name=description content="Move your first steps on Apache Openserverless"><meta property="og:url" content="/docs/tutorial/first-steps/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="First steps"><meta property="og:description" content="Move your first steps on Apache Openserverless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="First steps"><meta itemprop=descriptio [...]
+<meta name=description content="Move your first steps on Apache Openserverless"><meta property="og:url" content="/docs/tutorial/first-steps/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="First steps"><meta property="og:description" content="Move your first steps on Apache Openserverless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="First steps"><meta itemprop=descriptio [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/tutorial/first-steps/>Return to the regular view of this page</a>.</p></div><h1 class=title>First steps</h1><div class=lead>Move your first steps on Apache Openserverless</div><ul></ul><div class=content><h2 id=first-steps>First steps</h2><h3 id=starting-at-the-front>Starting at the Front</h3><p>Right now, after a freshly installation, if we visit the <code><apihost></code> you
will see a very simple page with:</p><blockquote><p>Welcome to OpenServerless static content distributor landing page!!!</p></blockquote><p>That’s because we’ve activated the static content, and by default it
starts with this simple <code>index.html</code> page. We will instead have our own
diff --git a/docs/tutorial/first-steps/index.html b/docs/tutorial/first-steps/index.html
index f9988f8..a1d0d89 100644
--- a/docs/tutorial/first-steps/index.html
+++ b/docs/tutorial/first-steps/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/tutorial/first-steps/_print/><link rel=alternate type=application/rss+xml href=/docs/tutorial/first-steps/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons [...]
-<meta name=description content="Move your first steps on Apache Openserverless"><meta property="og:url" content="/docs/tutorial/first-steps/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="First steps"><meta property="og:description" content="Move your first steps on Apache Openserverless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="First steps"><meta itemprop=descriptio [...]
+<meta name=description content="Move your first steps on Apache Openserverless"><meta property="og:url" content="/docs/tutorial/first-steps/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="First steps"><meta property="og:description" content="Move your first steps on Apache Openserverless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="First steps"><meta itemprop=descriptio [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check checked>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 active td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span class=td-sidebar-nav-active-item>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -164,7 +164,7 @@ subcommands.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f
</span></span><span style=display:flex><span> <span style=color:#4e9a06>"updated"</span>: <span style=color:#0000cf;font-weight:700>1696232618540</span>
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>}</span>
</span></span></code></pre></div><hr><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/tutorial/form-validation/_print/index.html b/docs/tutorial/form-validation/_print/index.html
index ab1b717..a51c20f 100644
--- a/docs/tutorial/form-validation/_print/index.html
+++ b/docs/tutorial/form-validation/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/tutorial/form-validation/><link rel=alternate type=application/rss+xml href=/docs/tutorial/form-validation/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/fav [...]
-<meta name=description content="Learn how to add form validation from front to back-end"><meta property="og:url" content="/docs/tutorial/form-validation/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Form validation"><meta property="og:description" content="Learn how to add form validation from front to back-end"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Form validat [...]
+<meta name=description content="Learn how to add form validation from front to back-end"><meta property="og:url" content="/docs/tutorial/form-validation/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Form validation"><meta property="og:description" content="Learn how to add form validation from front to back-end"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Form validat [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/tutorial/form-validation/>Return to the regular view of this page</a>.</p></div><h1 class=title>Form validation</h1><div class=lead>Learn how to add form validation from front to back-end</div><ul></ul><div class=content><h2 id=form-validation>Form validation</h2><p>Now that we have a contact form and a package for our actions, we have
to handle the submission. We can do that by adding a new action that
will be called when the form is submitted. Let’s create a <code>submit.js</code>
diff --git a/docs/tutorial/form-validation/index.html b/docs/tutorial/form-validation/index.html
index d5bc06d..c2050bf 100644
--- a/docs/tutorial/form-validation/index.html
+++ b/docs/tutorial/form-validation/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/tutorial/form-validation/_print/><link rel=alternate type=application/rss+xml href=/docs/tutorial/form-validation/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/ [...]
-<meta name=description content="Learn how to add form validation from front to back-end"><meta property="og:url" content="/docs/tutorial/form-validation/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Form validation"><meta property="og:description" content="Learn how to add form validation from front to back-end"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Form validat [...]
+<meta name=description content="Learn how to add form validation from front to back-end"><meta property="og:url" content="/docs/tutorial/form-validation/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Form validation"><meta property="og:description" content="Learn how to add form validation from front to back-end"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Form validat [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check checked>
@@ -230,7 +230,7 @@ actions:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;
</span></span><span style=display:flex><span> <span style=color:#000;font-weight:700>}</span>
</span></span><span style=display:flex><span><span style=color:#000;font-weight:700>}</span>
</span></span></code></pre></div><hr><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/tutorial/getting-started/_print/index.html b/docs/tutorial/getting-started/_print/index.html
index 345e1e3..e8c1159 100644
--- a/docs/tutorial/getting-started/_print/index.html
+++ b/docs/tutorial/getting-started/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/tutorial/getting-started/><link rel=alternate type=application/rss+xml href=/docs/tutorial/getting-started/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/fav [...]
-<meta name=description content="Let's start building a sample application"><meta property="og:url" content="/docs/tutorial/getting-started/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Getting started"><meta property="og:description" content="Let's start building a sample application"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Getting started"><meta itemprop=descript [...]
+<meta name=description content="Let's start building a sample application"><meta property="og:url" content="/docs/tutorial/getting-started/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Getting started"><meta property="og:description" content="Let's start building a sample application"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Getting started"><meta itemprop=descript [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/tutorial/getting-started/>Return to the regular view of this page</a>.</p></div><h1 class=title>Getting started</h1><div class=lead>Let’s start building a sample application</div><ul></ul><div class=content><h2 id=getting-started>Getting started</h2><h3 id=build-a-sample-application>Build a sample Application</h3><p>Imagine we have a static website and need server logic to store contacts
and validate data. This would require a server, a database and some code
to glue it all together. With a serverless approach, we can just
diff --git a/docs/tutorial/getting-started/index.html b/docs/tutorial/getting-started/index.html
index 7d6ee24..92f2955 100644
--- a/docs/tutorial/getting-started/index.html
+++ b/docs/tutorial/getting-started/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/tutorial/getting-started/_print/><link rel=alternate type=application/rss+xml href=/docs/tutorial/getting-started/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/ [...]
-<meta name=description content="Let's start building a sample application"><meta property="og:url" content="/docs/tutorial/getting-started/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Getting started"><meta property="og:description" content="Let's start building a sample application"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Getting started"><meta itemprop=descript [...]
+<meta name=description content="Let's start building a sample application"><meta property="og:url" content="/docs/tutorial/getting-started/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Getting started"><meta property="og:description" content="Let's start building a sample application"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Getting started"><meta itemprop=descript [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check checked>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 active td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span class=td-sidebar-nav-active-item>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -112,7 +112,7 @@ with the new services so they get deployed. Simply run:</p><div class=highlight>
to use!</p><h3 id=cleaning-up>Cleaning Up</h3><p>Once you are done and want to clean the services configuration, just
run:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops config disable --postgres --static --minio --cron
</span></span></code></pre></div><hr><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/tutorial/index.html b/docs/tutorial/index.html
index fbf7a68..9bd525a 100644
--- a/docs/tutorial/index.html
+++ b/docs/tutorial/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/tutorial/_print/><link rel=alternate type=application/rss+xml href=/docs/tutorial/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x18 [...]
-<meta name=description content="Showcase serverless development in action"><meta property="og:url" content="/docs/tutorial/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tutorial"><meta property="og:description" content="Showcase serverless development in action"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Tutorial"><meta itemprop=description content="Showcase serverle [...]
+<meta name=description content="Showcase serverless development in action"><meta property="og:url" content="/docs/tutorial/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tutorial"><meta property="og:description" content="Showcase serverless development in action"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Tutorial"><meta itemprop=description content="Showcase serverle [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 active td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span class=td-sidebar-nav-active-item>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -90,7 +90,7 @@ any supported language will do).</p><p>Its purpose is to showcase serverless dev
a contact form for a website. We will see the development process from
start to finish, including the deployment of the platform and running
the application.</p><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/docs/tutorial/getting-started/>Getting started</a></h5><p>Let’s start building a sample application</p></div><div class=entry><h5><a href=/docs/tutorial/first-steps/>First steps</a></h5><p>Move your first steps on Apache Openserverless</p></div><div class=entry><h5><a href=/docs/tutorial/form-validation/>Form validation</a></h5><p>Learn how to add form validation from front to back-end</ [...]
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/tutorial/notify-message/_print/index.html b/docs/tutorial/notify-message/_print/index.html
index 5d61e32..6565518 100644
--- a/docs/tutorial/notify-message/_print/index.html
+++ b/docs/tutorial/notify-message/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/tutorial/notify-message/><link rel=alternate type=application/rss+xml href=/docs/tutorial/notify-message/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favic [...]
-<meta name=description content="Sending notifications on user interaction"><meta property="og:url" content="/docs/tutorial/notify-message/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Sending notifications"><meta property="og:description" content="Sending notifications on user interaction"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Sending notifications"><meta itempr [...]
+<meta name=description content="Sending notifications on user interaction"><meta property="og:url" content="/docs/tutorial/notify-message/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Sending notifications"><meta property="og:description" content="Sending notifications on user interaction"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Sending notifications"><meta itempr [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/tutorial/notify-message/>Return to the regular view of this page</a>.</p></div><h1 class=title>Sending notifications</h1><div class=lead>Sending notifications on user interaction</div><ul></ul><div class=content><h2 id=sending-notifications>Sending notifications</h2><h3 id=contact-notification>Contact notification</h3><p>It would be great if we receive a notification when an user tries to
contact us. For this tutorial we will pick slack to receive a message
when it happens.</p><p>We need to:</p><ul><li><p>have a slack workspace where we can send messages;</p></li><li><p>create a slack app that will be added to the workspace;</p></li><li><p>activate a webhook for the app that we can trigger from an action;</p></li></ul><p>Check out the following scheme for the steps:</p><p><img alt="Slack Webhook" src=/docs/tutorial/images/slackurl.png></p><p>Once we have a webhook we can use to send messages we can proceed to
diff --git a/docs/tutorial/notify-message/index.html b/docs/tutorial/notify-message/index.html
index d88a29d..6c7022d 100644
--- a/docs/tutorial/notify-message/index.html
+++ b/docs/tutorial/notify-message/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/tutorial/notify-message/_print/><link rel=alternate type=application/rss+xml href=/docs/tutorial/notify-message/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/fa [...]
-<meta name=description content="Sending notifications on user interaction"><meta property="og:url" content="/docs/tutorial/notify-message/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Sending notifications"><meta property="og:description" content="Sending notifications on user interaction"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Sending notifications"><meta itempr [...]
+<meta name=description content="Sending notifications on user interaction"><meta property="og:url" content="/docs/tutorial/notify-message/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Sending notifications"><meta property="og:description" content="Sending notifications on user interaction"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Sending notifications"><meta itempr [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -172,7 +172,7 @@ with their log messages.</p><p>To also check if there are some problems with you
of times <code>ops activation list</code> and check the <code>Status</code> of the
activations. If you see some <code>developer error</code> or any other errors, just
grab the activation ID and run <code>ops logs <activation ID></code>.</p><hr><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/tutorial/packaging/_print/index.html b/docs/tutorial/packaging/_print/index.html
index 16f5141..0bc01ec 100644
--- a/docs/tutorial/packaging/_print/index.html
+++ b/docs/tutorial/packaging/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/tutorial/packaging/><link rel=alternate type=application/rss+xml href=/docs/tutorial/packaging/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple- [...]
-<meta name=description content="Learn how to deploy your app on Apache Openserverless"><meta property="og:url" content="/docs/tutorial/packaging/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="App Deployment"><meta property="og:description" content="Learn how to deploy your app on Apache Openserverless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="App Deployment"><meta i [...]
+<meta name=description content="Learn how to deploy your app on Apache Openserverless"><meta property="og:url" content="/docs/tutorial/packaging/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="App Deployment"><meta property="og:description" content="Learn how to deploy your app on Apache Openserverless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="App Deployment"><meta i [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/tutorial/packaging/>Return to the regular view of this page</a>.</p></div><h1 class=title>App Deployment</h1><div class=lead>Learn how to deploy your app on Apache Openserverless</div><ul></ul><div class=content><h2 id=app-deployment>App Deployment</h2><h3 id=packaging-the-app>Packaging the App</h3><p>With OpenServerless you can write a manifest file (in YAML) to have an
easy way to deploy applications.</p><p>In this last chapter of the tutorial we will package the code to easily
deploy the app, both frontend and actions.</p><h3 id=start-the-manifest-file>Start The Manifest File</h3><p>Let’s create a “manifest.yaml” file in the <code>packages</code> directory which
diff --git a/docs/tutorial/packaging/index.html b/docs/tutorial/packaging/index.html
index 9e73a0b..e8251b6 100644
--- a/docs/tutorial/packaging/index.html
+++ b/docs/tutorial/packaging/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/tutorial/packaging/_print/><link rel=alternate type=application/rss+xml href=/docs/tutorial/packaging/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/app [...]
-<meta name=description content="Learn how to deploy your app on Apache Openserverless"><meta property="og:url" content="/docs/tutorial/packaging/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="App Deployment"><meta property="og:description" content="Learn how to deploy your app on Apache Openserverless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="App Deployment"><meta i [...]
+<meta name=description content="Learn how to deploy your app on Apache Openserverless"><meta property="og:url" content="/docs/tutorial/packaging/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="App Deployment"><meta property="og:description" content="Learn how to deploy your app on Apache Openserverless"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="App Deployment"><meta i [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -200,7 +200,7 @@ input env var):</p><div class=highlight><pre tabindex=0 style=background-color:#
</span></span><span style=display:flex><span>Found web directory. Uploading..
</span></span></code></pre></div><p>With just this command you deployed all the actions (and sequences) and
uploaded the frontend (from the web folder).</p><hr><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/docs/tutorial/use-database/_print/index.html b/docs/tutorial/use-database/_print/index.html
index c38c55f..d5f4d6c 100644
--- a/docs/tutorial/use-database/_print/index.html
+++ b/docs/tutorial/use-database/_print/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=canonical type=text/html href=/docs/tutorial/use-database/><link rel=alternate type=application/rss+xml href=/docs/tutorial/use-database/index.xml><meta name=robots content="noindex, nofollow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/ [...]
-<meta name=description content="Store data into a relational database"><meta property="og:url" content="/docs/tutorial/use-database/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Use database"><meta property="og:description" content="Store data into a relational database"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Use database"><meta itemprop=description content="Stor [...]
+<meta name=description content="Store data into a relational database"><meta property="og:url" content="/docs/tutorial/use-database/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Use database"><meta property="og:description" content="Store data into a relational database"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Use database"><meta itemprop=description content="Stor [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/docs/tutorial/use-database/>Return to the regular view of this page</a>.</p></div><h1 class=title>Use database</h1><div class=lead>Store data into a relational database</div><ul></ul><div class=content><h2 id=use-database>Use database</h2><h3 id=storing-the-message-in-the-database>Storing the Message in the Database</h3><p>We are ready to use the database that we enabled at the beginning of the
tutorial.</p><p>Since we are using a relational database, we need to create a table to
store the contact data. We can do that by creating a new action called
diff --git a/docs/tutorial/use-database/index.html b/docs/tutorial/use-database/index.html
index ac5f506..d37be51 100644
--- a/docs/tutorial/use-database/index.html
+++ b/docs/tutorial/use-database/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/tutorial/use-database/_print/><link rel=alternate type=application/rss+xml href=/docs/tutorial/use-database/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favico [...]
-<meta name=description content="Store data into a relational database"><meta property="og:url" content="/docs/tutorial/use-database/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Use database"><meta property="og:description" content="Store data into a relational database"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Use database"><meta itemprop=description content="Stor [...]
+<meta name=description content="Store data into a relational database"><meta property="og:url" content="/docs/tutorial/use-database/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Use database"><meta property="og:description" content="Store data into a relational database"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Use database"><meta itemprop=description content="Stor [...]
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
@@ -222,7 +222,7 @@ with the integrated services, such as the database we are using.</p><p>For insta
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#ce5c00;font-weight:700>[{</span><span style=color:#4e9a06>'id'</span>: 1, <span style=color:#4e9a06>'name'</span>: <span style=color:#4e9a06>'OpenServerless'</span>, <span style=color:#4e9a06>'email'</span>: <span style=color:#4e9a06>'info@nuvolaris.io'</span>, <span style=color:#4e9a06>'phone'</span>: <span style=color:#4e9a06>'5551233210'</span>, <span style=color:#4e [...]
</span></span></code></pre></div><hr><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
-<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
+<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback-- [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/index.html b/index.html
index 2298703..72be1c0 100644
--- a/index.html
+++ b/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta name=generator content="Hugo 0.133.0"><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=application/rss+xml href=/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=ico [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Apache OpenServerless™"><meta property="og:description" content="Welcome to Apache OpenServerless™! Learn More Download Upgrading Kubernetes to a Serverless powerhouse to build your cloud-native A.I. application! Apache OpenServerless™ is a distribution, running in any Kubernetes Clusters or even plain [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Apache OpenServerless™"><meta property="og:description" content="Welcome to Apache OpenServerless™! Learn More Download Upgrading Kubernetes to a Serverless powerhouse to build your cloud-native A.I. application! Apache OpenServerless™ is a distribution, running in any Kubernetes Clusters or even plain [...]
</a><a class="btn btn-lg btn-secondary me-3 mb-4" href=/docs/installation/download/>Download <i class="fas fa-download ms-2"></i></a><h1 class="lead mt-5">Upgrading Kubernetes to a Serverless powerhouse to build your cloud-native A.I. application!</h1><p><a class="btn btn-link text-info" href=#td-block-1 aria-label="Read more"><i class="fa-solid fa-circle-chevron-down" style=font-size:400%></i></a></p></div></div></div></div></section><div><a id=td-block-1 class=td-offset-anchor></a></di [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
diff --git a/offline-search-index.17f8b4f88ce2f9f2a3dbe35f9b90575c.json b/offline-search-index.17f8b4f88ce2f9f2a3dbe35f9b90575c.json
deleted file mode 100644
index d0273da..0000000
--- a/offline-search-index.17f8b4f88ce2f9f2a3dbe35f9b90575c.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"body":"Quick Start This is a quick start guide to the installation process, targeting experienced users in a hurry.\nIt provides a high-level overview of the installation process, omitting advanced of details. The missing pieces are covered in the rest of the documentation.\nOf course, if this guide is not enough and things fail, you can always apply the rule: “if everything fails, read the manual”.\nPrerequisites Start ensuring the prerequsites are satisfied:\nDownload and install op [...]
\ No newline at end of file
diff --git a/offline-search-index.d257dc18fc1a0db2aa97239bd13779e2.json b/offline-search-index.d257dc18fc1a0db2aa97239bd13779e2.json
new file mode 100644
index 0000000..ce303b1
--- /dev/null
+++ b/offline-search-index.d257dc18fc1a0db2aa97239bd13779e2.json
@@ -0,0 +1 @@
+[{"body":"Quick Start This is a quick start guide to the installation process, targeting experienced users in a hurry.\nIt provides a high-level overview of the installation process, omitting advanced of details. The missing pieces are covered in the rest of the documentation.\nOf course, if this guide is not enough and things fail, you can always apply the rule: “if everything fails, read the manual”.\nPrerequisites Start ensuring the prerequsites are satisfied:\nDownload and install op [...]
\ No newline at end of file
diff --git a/search/index.html b/search/index.html
index b96c2b7..e319675 100644
--- a/search/index.html
+++ b/search/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicon [...]
-<meta name=description content><meta property="og:url" content="/search/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Search Results"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:modified_time" content="2024-10-29T19:41:06+01:00"><meta itemprop=name content="Search Results"><meta itemprop=description content="A [...]
+<meta name=description content><meta property="og:url" content="/search/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Search Results"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:modified_time" content="2024-10-29T21:27:31+01:00"><meta itemprop=name content="Search Results"><meta itemprop=description content="A [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
diff --git a/sitemap.xml b/sitemap.xml
index f3cf274..b78f218 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/docs/installation/quickstart/</loc><lastmod>2024-10-29T19:41:06+01:00</lastmod></url><url><loc>/docs/reference/entities/actions/</loc><lastmod>2024-10-29T19:41:06+01:00</lastmod></url><url><loc>/contribution-guidelines/</loc><lastmod>2024-10-29T19:41:06+01:00</lastmod></url><url><loc>/docs/installation/install/docker/</lo [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/docs/installation/quickstart/</loc><lastmod>2024-10-29T21:27:31+01:00</lastmod></url><url><loc>/docs/reference/entities/actions/</loc><lastmod>2024-10-29T21:27:31+01:00</lastmod></url><url><loc>/contribution-guidelines/</loc><lastmod>2024-10-29T21:27:31+01:00</lastmod></url><url><loc>/docs/installation/install/docker/</lo [...]
\ No newline at end of file
diff --git a/tags/index.html b/tags/index.html
index 5eb07a9..2b55344 100644
--- a/tags/index.html
+++ b/tags/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=application/rss+xml href=/tags/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon [...]
-<meta name=description content="A Docsy example site"><meta property="og:url" content="/tags/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tags"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Tags"><meta itemprop=description content="A Docsy example site"><meta name=twitter:card content="summary"><meta name=t [...]
+<meta name=description content="A Docsy example site"><meta property="og:url" content="/tags/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Tags"><meta property="og:description" content="A Docsy example site"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Tags"><meta itemprop=description content="A Docsy example site"><meta name=twitter:card content="summary"><meta name=t [...]
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation