ricardozanini commented on code in PR #531:
URL: 
https://github.com/apache/incubator-kie-kogito-docs/pull/531#discussion_r1489724293


##########
serverlessworkflow/modules/ROOT/pages/core/understanding-jq-expressions.adoc:
##########
@@ -199,6 +199,45 @@ You can find an example of event data filtering in the 
link:{kogito_sw_examples_
 The previous example of the event filter copies the content of CloudEvent data 
`result` field into the workflow model `move` field.
 --
 
+== Workflow secrets, constants and context
+
+As per specification, you can use 
link:{spec_doc_url}#workflow-constants[Workflow Constants] and 
link:{spec_doc_url}#workflow-secrets[Workflow Secrets] whenever an expression 
is accepted. 
+In {product_name} you can use `$SECRET` to access any configuration property, 
not just sensitive ones.
+So, assuming you have added to your `application.properties` a line with the 
`myname=john` property, the following function will append the string `my name 
is john` to the `message` variable
+----
+{
+      "name": "secretMessage",
+      "type": "expression",
+      "operation": ".message |= \"my name is \"+$SECRET.my_name"
+}
+----
+
+Besides constants and secrets, you might access contextual information of the 
running workflow by using the $WORKFLOW reserved word.
+{product_name} supports the following contextual keys:
+ * `id`: The id of the running workflow definition
+ * `name`: The name of the running workflow definition
+ * `instanceId`: The id of the running workflow instance
+ * `headers`: Optional map containing the headers, if any, of the invocation 
that started the running workflow instance 
+ * `prevActionResult`: In a `foreach` state, give access the result of the 
previous loop iteration output. 
+ * `identity`: Quarkus security identity
+ 
+ Therefore, the following function, for a serverless workflow definition whose 
id  is `expressionTest`, will append the string `worklow id is expressionTest` 
to the `message` variable
+
+----
+{
+      "name": "contextMessage",
+      "type": "expression",
+      "operation": ".message |= \"workflow id is \"+$WORKFLOW.id"
+}
+----
+ 
+=== Customizing workflow context
+
+In addition to the predefined keys mentioned previously, you can add your own 
keys to workflow context using Java Service Loader mechanism, by providing an 
implementation of class 
link:{kogito_runtimes_url}/kogito-serverless-workflow/kogito-serverless-workflow-utils/src/main/java/org/kie/kogito/serverless/workflow/utils/KogitoProcessContextResolverExtension.java[KogitoProcessContextResolverExtension]
 
+
+This feature was used to add quarkus security identity support, you can check 
source code as reference 
link:{kogito_runtimes_url}/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/serverless/workflow/QuarkusKogitoProcessContextResolver.java[here].
+

Review Comment:
   I don't think we should mention Quarkus here. It's highly related to what we 
are trying to do. These concepts sections must be solely to working with 
workflows at the spec level and how our runtime handles it. We can move these 
paragraphs to a new section under Quarkus. This is a rich material that we must 
keep, it's just a matter of rearrangement. @domhanak wdyt?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to