vania-janet/multiturn-rag-retrieval-data huggingface dataset:
4. Send a request to your app by curling the hostname and port of the Kubernetes LoadBalancer service that is assigned by the VPC load balancer that you found in step 2. Example:

curl 1234abcd-us-south.lb.appdomain.cloud:8080

Example output

Hello world from hello-world-deployment-5fd7787c79-sl9hn! Your app is up and running in a cluster!
5. Optional: To clean up the resources that you created in this lesson, you can use the labels that are assigned to each app.



1. List all the resources for each app in the hello-world project.

oc get all -l app=hello-world -o name -n hello-world

Example output

pod/hello-world-1-dh2ff
replicationcontroller/hello-world-1
service/hello-world
deploymentconfig.apps.openshift.io/hello-world
buildconfig.build.openshift.io/hello-world
build.build.openshift.io/hello-world-1
imagestream.image.openshift.io/hello-world
imagestream.image.openshift.io/node
2. Delete all the resources that you created.

oc delete all -l app=hello-world -n hello-world









 What's next? 

Now that you have a VPC cluster, learn more about what you can do.



* [Setting up block storage for your apps](https://cloud.ibm.com/docs/openshift?topic=openshift-vpc-block)
* [Backing up your internal image registry to IBM Cloud Object Storage](https://cloud.ibm.com/docs/openshift?topic=openshift-registrycos_image_registry)
* [Overview of the differences between classic and VPC clusters](https://cloud.ibm.com/docs/openshift?topic=openshift-infrastructure_providers)
: See [Planning for Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-plan-codeengine).

Added information about working with configmaps and secrets as mounted files.
: See [Referencing secrets and configmaps as mounted files](https://cloud.ibm.com/docs/codeengine?topic=codeengine-secretcm-reference-mountedfiles).

Updated FAQ to add information about differences between Code Engine builds and Docker builds.
: See [What is the difference between a Docker build on my system and a build in Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-faqsdockerbld-cebuild)?

Added a tip for when you copy an entire Git repository and note about best practices for naming application directories.
: See [Dockerfile basics](https://cloud.ibm.com/docs/codeengine?topic=codeengine-dockerfiledockerfile-basics).







 January 2021 

Review the release notes for January 2021.



 29 January 2021 

Review the release notes for 29 January 2021.

CLI version 0.5.15 released.
: See [CLI version history](https://cloud.ibm.com/docs/codeengine?topic=codeengine-cli_versions).

Environment variables
: Added information about automatically injected environment variables for Code Engine apps and jobs. See [Automatically injected environment variables](https://cloud.ibm.com/docs/codeengine?topic=codeengine-inside-env-vars).

Revised subscription topic.
: See [Subscribing to event producers](https://cloud.ibm.com/docs/codeengine?topic=codeengine-subscribing-events).

Ping subscription tutorial
: Added a ping subscription tutorial.
[checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) 
 Microsoft SharePoint On Premises ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) 
 Website ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) 
 Microsoft Windows file system ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) 







 Step 8: Not sure what you can build? 

For more information about the types of search solutions you can build, see [Start getting value from your data](https://cloud.ibm.com/docs/discovery-data?topic=discovery-data-product-overview).
Download and install [OpenSSL](https://github.com/openssl/opensslfor-production-use).
2. Base64 encode your key material string by running the following command:

$ openssl rand <byte_length> -base64

Replace the byte_length variable in the example request with the length of your key, which is measured in bytes. Acceptable byte lengths are 16, 24, or 32 bytes, corresponding to 128, 192, or 256 bits.









 What's next 



* To find out more about protecting keys with envelope encryption, check out [Wrapping keys](https://cloud.ibm.com/docs/hs-crypto?topic=hs-crypto-wrap-keys).
* To find out instruction on creating a key, check out [Creating root keys](https://cloud.ibm.com/docs/hs-crypto?topic=hs-crypto-create-root-keys) or [Creating standard keys](https://cloud.ibm.com/docs/hs-crypto?topic=hs-crypto-create-standard-keys).
* To find out more about programmatically managing your keys, [check out the Hyper Protect Crypto Services key management service API reference doc](https://cloud.ibm.com/apidocs/hs-crypto).
* To find out more about using the Key Protect CLI, check out the [Key Protect CLI reference doc](https://cloud.ibm.com/docs/key-protect?topic=key-protect-cli-plugin-key-protect-cli-reference).
To add a VPC into permitted networks for a DNS zone, users must have the Operator role on the VPC resource. The permission can be granted to any user by creating an IAM access policy with the following assignments in IBM Cloud UI:



1. Select VPC Infrastructure for What type of access do you want to assign?.
2. Select Virtual Private Cloud for Resource Type.
3. Choose the appropriate VPC under VPC ID.



To learn more about providing Operator level access to the VPC, see [VPC: Getting started with IAM](https://cloud.ibm.com/docs/vpc?topic=vpc-iam-getting-started).
From the "Configure service binding operations" page, select Use a custom service ID.
4. Choose the custom service ID that you want to use.
5. (optional) Expand the What Code Engine does for you section to view information about what Code Engine automatically creates for you when you configure service binding operations. View information about the API key that Code Engine automatically generates for the service ID and the operator secret that is used for service binding operations.
6. Click Configure. After service binding operations are configured, the custom service ID for service binding operations is displayed.
7. (optional) Click View details to view details of the service binding operations configuration. From this page, you can view information about the service ID, API key, and operator secret that is used for service binding operations.



Now that you configured service binding operations with a custom service ID with required IAM permissions, every user with writer or manager access to this Code Engine project can create and delete service bindings. See [Working with service bindings to integrate IBM Cloud services with Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-service-binding).





 Removing configured service binding operations 

If service binding operations are configured, you can also use the Integrations page to remove the ability for all users of the project to create or delete service bindings. This action removes the operator secret for service binding operations.



1. Go to the Integrations page.



1. Select your project from the [Projects page in the Code Engine console](https://cloud.ibm.com/codeengine/projects).
2. Click Project settings > Integrations.



2. If the status of Service binding operations is Configured, click Remove configuration to remove the operator secret. You are asked to confirm that you want to delete the operator secret.



When you receive a message that service binding operations are removed, the status for service binding operations is Not configured.

If you remove configured service binding operations from the Integrations page, any existing service bindings remain.
[More options](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/kabob.png) icon on the menu node, and then select Add node below.
3. Start to type cancel_order into the If assistant recognizes field of this node. Then select the cancel_order option.
4. Add the following message in the response text field:

If the pickup time is more than 48 hours from now, you can cancel your order.

![Shows a dialog node that conditions on the #cancel_order intent and returns a text response.](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/gs-ass-cancel-order-node-added.png)

Before you can actually cancel the order, you need to know the order number. The user might specify the order number in the original request. So, to avoid asking for the order number again, check for a number with the order number pattern in the original input. To do so, define a context variable that would save the order number if it is specified.
5. You define a context variable in the context editor. From the response section of the node, click the More![More options](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/kabob.png) icon, and then select Open context editor.

![Shows the Open context editor menu option from the node edit view.]
[More options](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/kebab.png) icon on the menu node, and then select Add node below.
3. Start to type cancel_order into the If assistant recognizes field of this node. Then select the cancel_order option.
4. Add the following message in the response text field:

If the pickup time is more than 48 hours from now, you can cancel your order.

![Shows a dialog node that conditions on the #cancel_order intent and returns a text response.](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/gs-ass-cancel-order-node-added.png)

Before you can actually cancel the order, you need to know the order number. The user might specify the order number in the original request. So, to avoid asking for the order number again, check for a number with the order number pattern in the original input. To do so, define a context variable that would save the order number if it is specified.
5. You define a context variable in the context editor. From the response section of the node, click the More![More options](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/kebab.png) icon, and then select Open context editor.

![Shows the Open context editor menu option from the node edit view.]
Click Advanced to display the Prefix Path.
10. Set the Prefix Path to ibmcloud/kv.
11. Make sure that the K/V Engine Version is 2.







 Updating the plug-in's Vault token 

You can configure a vault-refresh job to run periodically in order to refresh the Vault token before it expires.



1. Create a periodically repeated job to refresh the token. The token uses the Jenkins CLI command update-credentials-by-xml to update the value of the token credential that you defined as a placeholder value in step 2 of the [Setting up](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-integration-jenkinsintegration-jenkins-setup) section.
2. Create a Jenkins job with the name vault-refresh, for example.
3. In the Build Environment section, add the name of the secret as the Secret Text variable. It is recommended for you to generate an API key from a service ID. Assign to the service ID the minimal access that is needed for reading the secrets that you handle by using the Jenkins plug-in.
4. In the Build Steps section, add Executive Shell and enter the following script.

wget YOUR-TAAS-JENKINS-INSTANCE-NAME.swg-devops.com/jnlpJars/jenkins-cli.jar
export IAM_TOKEN=$(curl -X POST 'https://iam.cloud.ibm.com/identity/token' -H 'Content-Type: application/x-www-form-urlencoded' -d "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=${IAM_API_KEY}" | jq --raw-output '.access_token')
Show more

As this example shows, the text response (OK, here's a picture of a dog.) is also returned in the output.text array. This is included for backward compatibility for older applications that do not support the output.generic format.

It is the reponsibility of your client application to handle all response types appropriately. In this case, your application would need to display the specified text and image to the user.





 Response types 

Each element of a response is of one of the supported response types (currently image, option, pause, text, suggestion, and user_defined). Each response type is specified using a different set of JSON properties, so the properties included for each response will vary depending upon response type. For complete information about the response model of the /message API, see the [API Reference](https://cloud.ibm.com/apidocs/assistant/assistant-v2message).)

This section describes the available response types and how they are represented in the /message API response JSON. (If you are using the Watson SDK, you can use the interfaces provided for your language to access the same objects.)

The examples in this section show the format of the JSON data returned from the /message API at run time, and is different from the JSON format used to define responses within a dialog node. You can use the format in the examples to update output.generic with [webhooks](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-webhooksdialog-webhooks-outputgeneric). To update output.generic using the JSON editor, see [Defining responses using the JSON editor](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-responses-json)).



 Text 

The text response type is used for ordinary text responses from the dialog:

{
"output": {
"generic":[
{
"response_type": "text",
"text": "OK, you want to fly to Boston next Monday."
}
]
},
You can see your to-do list with a couple of items on it:

Zoom

![Your to-do list](https://cloud.ibm.com/docs-content/v1/content/522c6f62358b063f921283400a601c3f9bc66f08/Cloudant/tutorials/images/todolist.png)

Figure 1. Your web-based To-Do list
2. Add or delete notes, or you can filter by tag by clicking one of the tags.







 Understanding the code 



 Database and Index creation 

The backend script (server.js), on start-up, tries to connect to the todo database by using the getDatabaseInformation method. If it doesn't find it, it attempts to create it by using the putDatabase method.

After you create the todo database, it creates two indexes by using the postIndex method. The first creates an index on the timestamp field (the creation date of your note), so it can retrieve all notes in reverse chronological order. The second index is on the tag and timestamp so that it can filter by tag and return a date-ordered list for a known tag.





 Using the database 

The front end is using the popular [express](https://expressjs.com/) framework to display a webpage and call service endpoints in your backend when you click different actions, like create, delete, and filter.

For example, when your webpage is first loaded, it calls the GET /todolist endpoint. The GET /todolist endpoint uses the postFind method to query the database for all documents (by using the index created after the todo database), and then orders the notes by timestamp, and returns them to the front end for display.

Filtering by tag uses the same postFind method, but by using the second index, you create and delete notes by using the postDocument and deleteDocument methods.







 Summary
The description column indicates why the IP address is reserved in these cases. [Unrouted subnets](https://cloud.ibm.com/docs/subnets?topic=subnets-re-routing-secondary-subnets) do not require any reservations to function, because these subnets are not routed on the {site.data.keyword.cloud_notm} network. These IP addresses are shown with a status of Unrouted and are not available for use until the subnet is routed again.





 Tagging subnets 

You can tag all subnets on your account with one or more alphanumeric identifiers to make it easier to search and select for specific subnets. Use custom tags to locate subnets on your account rather than information such as subnet network identifier, VLAN, or location. Follow these steps to create or update subnet tags.



1. Click the Add tags button at the top of the Subnet Details page. If one or more tags are already present on the subnet, click the pencil icon to update them.
2. In the Update tags window that appears, enter one or more tags to be created or remove existing tags by clicking the x on the tag.
3. Click Save to update the tags.







 Editing reverse DNS 

For any IP address on a public subnet, you can adjust the DNS settings from the overflow menu.



1. Select Edit reverse DNS from the overflow menu ![overflow menu](https://cloud.ibm.com/docs-content/v1/content/88335aaac95959c46c027441a146a8971be515cd/subnets/images/overflow.png).
2. Enter the Reverse DNS in the field provided.
3. Select a Reverse TTL from the list.
4. Click Update to save your changes.
Using time reference system 

Time reference system (TRS) is a local, regional or global system used to identify time. A time reference system defines a specific projection for forward and reverse mapping between a timestamp and its numeric representation. A common example that most users are familiar with is UTC time, which maps a timestamp, for example, (1 Jan 2019, 12 midnight (GMT) into a 64-bit integer value (1546300800000), which captures the number of milliseconds that have elapsed since 1 Jan 1970, 12 midnight (GMT). Generally speaking, the timestamp value is better suited for human readability, while the numeric representation is better suited for machine processing.

In the time series library, a time series can be associated with a TRS. A TRS is composed of a:



* Time tick that captures time granularity, for example 1 minute
* Zoned date time that captures a start time, for example 1 Jan 2019, 12 midnight US Eastern Daylight Savings time (EDT). A timestamp is mapped into a numeric representation by computing the number of elapsed time ticks since the start time. A numeric representation is scaled by the time tick and shifted by the start time when it is mapped back to a timestamp.



Note that this forward + reverse projection might lead to time loss. For instance, if the true time granularity of a time series is in seconds, then forward and reverse mapping of the time stamps 09:00:01 and 09:00:02 (to be read as hh:mm:ss) to a time tick of one minute would result in the time stamps 09:00:00 and 09:00:00 respectively. In this example, a time series, whose granularity is in seconds, is being mapped to minutes and thus the reverse mapping looses information. However, if the mapped granularity is higher than the granularity of the input time series (more specifically, if the time series granularity is an integral multiple of the mapped granularity) then the forward + reverse projection is guaranteed to be lossless.
* [ConnectionNameList](https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.dev.doc/q119450_.htm) is a comma separated list of queue manager endpoints of the form "host1(port1),host2(port2)" which will be tried in sequential order when the application creates a connection, so is ideal for active/passive style scenarios where applications should prefer to connect to host1 if it is available
* [CCDT (Client Channel Definition Table)](https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.dev.doc/q032510_.htm) is a file format that defines the set of available queue managers, and allows the user to define groups of equivalent queue managers, and policies for distributing connection requests across those queue managers. By default it will randomise connections to sets of queue managers in the group (which is ideal for active/active scenarios), however it can also be configured to define a preference (e.g. active/passive scenarios)
* Applications that use the [IBM MQ REST Messaging API](https://cloud.ibm.com/docs/services/mqcloud?topic=mqcloud-mqoc_qm_rest_api) attach to a different REST URL endpoint for each queue manager, and can use the capabilities of their programming environment to select which endpoint to use, and how to handle failover in the event that one of the endpoints is not available









 Cold Disaster Recovery 

The sections above describe how IBM MQ on Cloud provides high availability to handle outages or failures that might occur for individual workers on which queue managers are running, however there is a more extreme failure scenario in which a catastrophic failure causes all of the existing infrastructure and data to be unavailable or corrupted. We call the process of restoring the service following this type of failure "Cold Disaster Recovery", shortened to "Cold DR".

As an example a Cold DR scenario would occur if the entire data center in which MQ on Cloud infrastructure for a given region has been deployed is taken offline, for example due to a major natural disaster.
Table 3. Subtitle file formats

 File format File extension Content type 

 Apple® iTunes® Timed Text .itt <br>The file extension is required application/xml 
 DirectVobSub .sub <br>The file extension is required text/plain 
 Distribution Format Exchange Profile .dxfp <br>The file extension is sufficient application/ttaf+xml 
 .xml application/ttaf+xml <br>The content type is required 
 MicroDVD .sub <br>The file extension is required text/plain 
 Source Code Control .scc <br>The file extension is required application/octet-stream 
 SubRip .srt text/srt 
 SubStation Alpha .ssa <br>The file extension is required text/plain 
 SubViewer .sbv text/sbv 
 Synchronized Accessible Media Interchange .sami <br>The file extension is required application/xml 
 .smi <br>The file extension is required application/xml 
 Time Text Markup Language .ttml application/ttml+xml 
 VSFilter .sub <br>The file extension is required text/plain 
 WebVTT .vtt text/vtt 



The following information qualifies some of the nuances of subtitle translation:



* Character encoding - Subtitles can be presented in different character sets. The service supports only UTF-8 input and produces only UTF-8 output. The results maintain the line separation and optional Byte Order Mark (BOM) from the original source.
* Markup - The service attempts to preserve markup in the translated document, but preservation is not guaranteed. The service can silently remove markup from a particular cue.
* Names - By convention, speaker names can be marked with -..:, parentheses, or both. The service extracts and translates speaker names separately to guarantee consistent translation.
* Paragraphs - The text to be translated is grouped into paragraphs. Each paragraph can span multiple cues, but it always consists of a full set of cue lines. In other words, each paragraph consists of one or more cues in their entirety, with each cue contained fully in a single paragraph.

A single cue can contain one or more lines of text (for example, two short sentences).