Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
348 commits
Select commit Hold shift + click to select a range
0fb486d
removed title from intro
chrishoina Sep 26, 2022
86a3aba
Merge remote-tracking branch 'upstream/main'
chrishoina Sep 26, 2022
7139844
Merge branch 'oracle-livelabs:main' into main
chrishoina Mar 20, 2023
5804047
qa updates to lab
chrishoina Mar 21, 2023
bcb1af1
updates to images, light edits
chrishoina Mar 23, 2023
d5bfb34
Merge branch 'oracle-livelabs:main' into main
chrishoina Mar 23, 2023
65bd909
Merge branch 'main' of https://github.com/chrishoina/developer
chrishoina Mar 23, 2023
d8c1725
Merge branch 'oracle-livelabs:main' into main
chrishoina May 1, 2023
2c46d60
ocw213 folders
chrishoina May 1, 2023
1316050
ocw213 folders
chrishoina May 2, 2023
8e3a35b
updated manifest
chrishoina Jul 17, 2023
1adb0ee
resolved conflicts.
chrishoina Jul 24, 2023
1cefbbf
Merge branch 'main' into main
chrishoina Jul 24, 2023
50d3af6
updated manifest with additional help section
chrishoina Aug 3, 2023
bb8a517
updated manifest.json with help section
chrishoina Aug 3, 2023
64f0e36
Merge branch 'main' into main
chrishoina Aug 3, 2023
f9beb6e
updates to images, text, updated code
chrishoina Aug 18, 2023
a868327
Merge branch 'main' into main
chrishoina Aug 18, 2023
8fd68b2
Merge branch 'main' into main
anooshapilli Aug 18, 2023
1477d19
corrected manifest.json
chrishoina Aug 22, 2023
63dc949
updates to ocw lab
chrishoina Sep 8, 2023
b1bd4da
updates to ocw labs
chrishoina Sep 11, 2023
ea88a26
updates to rest lab
chrishoina Sep 11, 2023
0d23ef3
updates to md
chrishoina Sep 14, 2023
b8a845d
updates to md
chrishoina Sep 14, 2023
b131168
added wms id in comments
chrishoina Sep 14, 2023
995d85a
Merge branch 'main' into main
malcherm Sep 14, 2023
937e5db
Merge branch 'oracle-livelabs:main' into main
chrishoina Sep 18, 2023
220f404
Merge branch 'oracle-livelabs:main' into main
chrishoina Dec 14, 2023
48dcb90
updates?
chrishoina Dec 14, 2023
bcdc438
intro changes
chrishoina Jan 22, 2024
20afb5f
test
chrishoina Jan 22, 2024
3789941
test
chrishoina Jan 22, 2024
954d817
additions to workshops
chrishoina Feb 14, 2024
e683807
additions to workshops
chrishoina Feb 14, 2024
86febe6
Update application-oracle-rest-api-walkthrough.md
dannymgithub Feb 15, 2024
3d74b64
Merge branch 'oracle-livelabs:main' into main
chrishoina Feb 26, 2024
4b61761
manifest changes
chrishoina Feb 26, 2024
53a838f
Merge branch 'main' of github.com:chrishoina/developer
chrishoina Feb 26, 2024
890674a
new dbactions pages
chrishoina May 22, 2024
37049f8
lintchecker
chrishoina May 30, 2024
ac530b3
Merge branch 'main' into main
chrishoina Jun 6, 2024
7f895d6
sync
chrishoina Aug 13, 2024
574b21a
added help email
chrishoina Aug 13, 2024
32fcdff
sync
chrishoina Aug 13, 2024
204439a
Merge branch 'main' into main
chrishoina Aug 14, 2024
6060986
introduced new lab, changed file names
chrishoina Aug 14, 2024
1262290
Merge branch 'main' of github.com:chrishoina/developer
chrishoina Aug 14, 2024
b2c4b25
added sandbox dir
chrishoina Aug 14, 2024
0f96d85
updates to md
chrishoina Aug 14, 2024
60693b3
md and image updates
chrishoina Aug 15, 2024
fc04ccd
changes to master graphics
chrishoina Aug 15, 2024
d7f7243
Merge branch 'main' into main
chrishoina Aug 15, 2024
b8ed092
removed intro copy
chrishoina Aug 15, 2024
38afa3f
removed 2023 ocw references
chrishoina Aug 19, 2024
eaba210
changes to images, manifest, tasks, steps
chrishoina Aug 21, 2024
672b9d8
removed venv
chrishoina Aug 21, 2024
fa405e5
grammar, spelling
chrishoina Aug 21, 2024
c6f7dcf
grammar, spelling
chrishoina Aug 21, 2024
5cbbc63
grammar, spelling
chrishoina Aug 21, 2024
483bebb
grammar, spelling
chrishoina Aug 21, 2024
4204a9b
grammar, spelling
chrishoina Aug 21, 2024
5ccc2f3
grammar, spelling, code index
chrishoina Aug 21, 2024
a785e71
Merge branch 'oracle-livelabs:main' into main
chrishoina Aug 21, 2024
8308049
fixed image
chrishoina Aug 21, 2024
2a154fb
Merge branch 'main' of github.com:chrishoina/developer
chrishoina Aug 21, 2024
7d16e51
Merge remote-tracking branch 'upstream/main'
chrishoina Aug 21, 2024
90241b5
image updates, content changes
chrishoina Aug 21, 2024
46d68a0
Merge branch 'oracle-livelabs:main' into main
chrishoina Aug 23, 2024
8f78e7c
added clarifying steps in get-started and images
chrishoina Aug 23, 2024
962f6b9
Merge branch 'main' into main
hope-fisher Aug 24, 2024
177835c
blurred ocid and compartment details.
chrishoina Aug 24, 2024
d6308de
updated-images-with-uris-removed
chrishoina Aug 24, 2024
8d57ef2
Merge branch 'oracle-livelabs:main' into main
chrishoina Jul 23, 2025
a9894aa
new ocw2025 files
chrishoina Jul 23, 2025
9bafb26
Merge branch 'main' of https://github.com/chrishoina/developer
chrishoina Jul 23, 2025
e5a864a
new lab manifest and py code
chrishoina Jul 24, 2025
e925e39
new lab
chrishoina Aug 2, 2025
dc535fb
note alert test
chrishoina Aug 2, 2025
7ba5784
note alert test
chrishoina Aug 2, 2025
4dae0b3
space below note
chrishoina Aug 2, 2025
1e8be3a
testing breaks
chrishoina Aug 2, 2025
f293406
testing breaks
chrishoina Aug 2, 2025
b9c508f
button test
chrishoina Aug 2, 2025
4e343da
new button test
chrishoina Aug 2, 2025
0062196
new
chrishoina Aug 2, 2025
6dd859a
new important alert
chrishoina Aug 2, 2025
243806d
testing the note
chrishoina Aug 2, 2025
2120288
new note location
chrishoina Aug 2, 2025
f414496
testing br
chrishoina Aug 2, 2025
e71989c
testing br location
chrishoina Aug 2, 2025
c19d309
Update 2-environment-set-up.md
chrishoina Aug 2, 2025
7d7aeea
omitting br
chrishoina Aug 2, 2025
faa071b
bullets
chrishoina Aug 2, 2025
61285c1
bullets
chrishoina Aug 2, 2025
d75b93e
unit 2 task 2 completed
chrishoina Aug 2, 2025
d3c748c
footnote testing
chrishoina Aug 2, 2025
28a4909
testing image in footnote
chrishoina Aug 2, 2025
bff7be2
testing image in footnote
chrishoina Aug 2, 2025
2fe95ed
testing image in footnote
chrishoina Aug 2, 2025
48f02eb
testing image in footnote
chrishoina Aug 2, 2025
e0e7c36
testing image in footnote
chrishoina Aug 2, 2025
e47f59f
testing image in footnote
chrishoina Aug 2, 2025
2e67968
testing footnote
chrishoina Aug 3, 2025
8753bd1
changes to manifest.json
chrishoina Aug 3, 2025
c8d848b
changed dir name to sqlcl-mcp
chrishoina Aug 3, 2025
a3fe4ab
testing note alert
chrishoina Aug 3, 2025
47a62b5
new tasks
chrishoina Aug 4, 2025
fd154e5
testing alerts
chrishoina Aug 4, 2025
06698e0
note changes
chrishoina Aug 4, 2025
ebdd049
alert change test
chrishoina Aug 4, 2025
94a6068
alert test
chrishoina Aug 4, 2025
bb0e6cd
alert testing
chrishoina Aug 4, 2025
c9959f5
alert change
chrishoina Aug 4, 2025
25ce687
alert test
chrishoina Aug 4, 2025
bde3f8b
alert info
chrishoina Aug 4, 2025
a82bec4
alert
chrishoina Aug 4, 2025
8a5617e
alerts testing
chrishoina Aug 4, 2025
9d84c2d
alert test
chrishoina Aug 4, 2025
fde5755
note alert
chrishoina Aug 4, 2025
a19439d
button colors
chrishoina Aug 4, 2025
61f96d8
html tag correction
chrishoina Aug 4, 2025
c629c4a
tag
chrishoina Aug 4, 2025
6e633c1
tag
chrishoina Aug 4, 2025
fd33b03
tag
chrishoina Aug 4, 2025
499104a
tag
chrishoina Aug 4, 2025
12f0a36
testing admonitions
chrishoina Aug 4, 2025
9da1eeb
latest lab 2 draft
chrishoina Aug 4, 2025
c38e275
fixed broken image
chrishoina Aug 4, 2025
fe84e99
update to the intro lab
chrishoina Aug 13, 2025
70e3d81
changed the repo name, and updated the intro md
chrishoina Aug 14, 2025
f282344
mermaid test
chrishoina Aug 14, 2025
c8e33c8
added mermaid tags to intro
chrishoina Aug 14, 2025
774b5cf
added mermaid tags to intro
chrishoina Aug 14, 2025
7a514d2
added mermaid tags to intro
chrishoina Aug 14, 2025
88b7388
intro changes
chrishoina Aug 14, 2025
6e18421
testing admonitions
chrishoina Aug 18, 2025
8143bf4
capital N in note
chrishoina Aug 18, 2025
8eea585
notes
chrishoina Aug 18, 2025
2a0b952
testing note and para break
chrishoina Aug 18, 2025
8645d1a
notes
chrishoina Aug 18, 2025
d9de5fc
note
chrishoina Aug 18, 2025
f0cae2e
note
chrishoina Aug 18, 2025
2d7eb7f
notes
chrishoina Aug 18, 2025
fc44b55
note
chrishoina Aug 18, 2025
88354fb
warning
chrishoina Aug 18, 2025
011db8c
warning
chrishoina Aug 18, 2025
681cd74
first draft for review
chrishoina Aug 18, 2025
3b83482
note nesting
chrishoina Aug 18, 2025
0feae8a
misspelled labs
chrishoina Aug 18, 2025
f980aad
removed bullet in prereqs
chrishoina Aug 18, 2025
1ab9409
indentation task 1 step 1
chrishoina Aug 18, 2025
8710fd7
spelling
chrishoina Aug 18, 2025
3fdfac5
new images, and md prompt
chrishoina Aug 26, 2025
e271d10
changed md file name for lab 5
chrishoina Aug 26, 2025
bc80a5c
added title to lab five md
chrishoina Aug 26, 2025
b7133e9
added tasks to the sub headings.
chrishoina Aug 26, 2025
c17a02e
copy blocks
chrishoina Aug 27, 2025
41722fb
lab 6 draft
chrishoina Aug 27, 2025
c812888
changed title of lab 4
chrishoina Aug 27, 2025
6fab024
build a react app
chrishoina Aug 28, 2025
78a714f
lab 7 updates
chrishoina Aug 28, 2025
ea7b05b
removed unecessary files
chrishoina Aug 28, 2025
c36b1bc
testing less images
chrishoina Aug 28, 2025
88a23c3
three images
chrishoina Aug 28, 2025
0dd8743
intro draft
chrishoina Aug 29, 2025
348f142
intro updates
chrishoina Aug 29, 2025
bc3a8b9
intro revision
chrishoina Aug 29, 2025
64b5636
references and acks
chrishoina Aug 30, 2025
bfac072
testing anchors
chrishoina Aug 30, 2025
193d98c
href test
chrishoina Aug 30, 2025
4105141
footnote test
chrishoina Aug 30, 2025
b3cc27b
adding skiplink to anchor
chrishoina Aug 30, 2025
6fc9d81
revisions to labs 1, 2
chrishoina Aug 30, 2025
ac19aa8
update
chrishoina Aug 30, 2025
48e9c79
lab 4 updates
chrishoina Sep 1, 2025
88a3b4b
notes for object storage, draft prompts for testing
chrishoina Sep 1, 2025
be9312c
removed images
chrishoina Sep 1, 2025
ec0bc12
9-2 slack feedback from jefe
chrishoina Sep 2, 2025
1135188
incorporated new feedback
chrishoina Sep 3, 2025
7aa5cd3
lab four button
chrishoina Sep 3, 2025
bf0b447
updated prompt sections
chrishoina Sep 4, 2025
b440ee9
updates to md and manifest
chrishoina Sep 8, 2025
3a6e4d0
lint-checking
chrishoina Sep 11, 2025
75484bf
Merge remote-tracking branch 'upstream/main'
chrishoina Sep 11, 2025
cd9d999
removed screenshot files, updated title name in manifest.
chrishoina Sep 11, 2025
f7b0373
updates for ords101
chrishoina Sep 26, 2025
46b397e
updates to manifest and folders
chrishoina Sep 26, 2025
2e72a2d
new revision
chrishoina Sep 26, 2025
cf8591e
revised manifests
chrishoina Sep 26, 2025
0b50fc9
minor image edits, removed unecessary html comments
chrishoina Sep 26, 2025
e8f22fd
Merge branch 'main' into main
chrishoina Sep 29, 2025
752a0ef
adjusted skew on image
chrishoina Sep 30, 2025
e85d31d
Merge branch 'main' into main
chrishoina Sep 30, 2025
b44c860
updated download link to point to LL object storage.
chrishoina Oct 2, 2025
c90dda7
updated the object storage batchload zip file
chrishoina Oct 3, 2025
386df0a
Merge branch 'main' into main
chrishoina Oct 3, 2025
54838a6
updated ddl, proc, and L2T3S6
chrishoina Oct 7, 2025
602c04c
added notes for production curl bug
chrishoina Oct 7, 2025
0f25514
Merge branch 'main' into main
chrishoina Oct 7, 2025
83e5d24
revised prompts to work better with new OCA LLMs
chrishoina Oct 11, 2025
dbf6549
Merge branch 'main' into main
chrishoina Oct 11, 2025
b8dd87c
updated env set up with today's session's URLs for OCA registration.
chrishoina Oct 15, 2025
1e9038a
altered path for oca link
chrishoina Oct 15, 2025
d3e7367
updated url for oca registration.
chrishoina Oct 15, 2025
97d3052
Merge branch 'main' into main
chrishoina Oct 15, 2025
db4c294
bitly for oca link
chrishoina Oct 16, 2025
6cd666a
bitly for oca link
chrishoina Oct 16, 2025
697f72b
Merge branch 'main' of https://github.com/chrishoina/developer
chrishoina Oct 16, 2025
4b6d2ae
Merge branch 'main' into main
klazarz Oct 16, 2025
bdb734e
new instructions for tenancy
chrishoina Nov 4, 2025
a6c9d84
Merge branch 'main' into main
chrishoina Nov 4, 2025
3e12871
removed ppt, and updated images to remove PII
chrishoina Nov 5, 2025
a23dc5e
Merge branch 'main' into main
chrishoina Nov 5, 2025
9a2b77d
added additional manifests and types
chrishoina Nov 12, 2025
59c7988
Merge branch 'main' into main
chrishoina Nov 13, 2025
17669dc
updates for freesql user, more conditional formatting, images for lab 5
chrishoina Nov 17, 2025
ae351b3
Merge branch 'main' into main
chrishoina Nov 17, 2025
c647ab5
Merge branch 'oracle-livelabs:main' into main
chrishoina Nov 18, 2025
1afeea0
improved react and html prompts, added helpful images in intro
chrishoina Nov 19, 2025
07229b5
Added the wms ID to the bottom of the md pages for ease.
chrishoina Nov 19, 2025
577f8f9
added schema information tool to table in lab-2
chrishoina Nov 19, 2025
57bb350
Update create_an_html_dashboard_prompt.md
chrishoina Nov 26, 2025
8568945
Update create_an_html_dashboard_prompt.md
chrishoina Nov 26, 2025
80eaa09
Merge branch 'main' of https://github.com/oracle-livelabs/developer
chrishoina Dec 1, 2025
9e390a7
updating react prompt
chrishoina Dec 1, 2025
0dc250c
updated prompts, removed oca from images, reduced text overall, updat…
chrishoina Jan 6, 2026
728b767
Merge branch 'main' into main
chrishoina Jan 6, 2026
1479e36
user feedback: fixed styling in markdown lists, escaped underscore in…
chrishoina Jan 7, 2026
4908ba5
Merge branch 'main' into main
chrishoina Jan 7, 2026
4bb89db
added schema-information section to explore lab, added images to assist.
chrishoina Jan 8, 2026
883dc5f
Merge branch 'main' into main
chrishoina Jan 8, 2026
12d28b7
testing include functionality
chrishoina Feb 17, 2026
3159334
updated images, improved prereqs, new pc and mac specific steps
chrishoina Feb 17, 2026
447d42a
used optishot to optimize image files
chrishoina Feb 17, 2026
8b6f309
Merge branch 'main' of https://github.com/chrishoina/developer
chrishoina Feb 17, 2026
8e4eb79
Merge branch 'oracle-livelabs:main' into main
chrishoina Feb 18, 2026
a83b1e0
fixed tools table errors, added numbering to labs in manifest
chrishoina Feb 18, 2026
5336670
Merge branch 'oracle-livelabs:main' into main
chrishoina Feb 23, 2026
20608c1
testing-building-blocks
chrishoina Feb 23, 2026
e3bb1f2
updates to take up freesql tasks
chrishoina Feb 23, 2026
65c5eff
updated UI images, instructions, improved flow
chrishoina Sep 17, 2026
06b9966
Merge upstream main into main
chrishoina Sep 18, 2026
aba2da4
fixomat changes
chrishoina Sep 21, 2026
651378e
removed problem md
chrishoina Sep 21, 2026
22ce564
removed href, using ll-approved download attribute instead
chrishoina Sep 21, 2026
9a8c3b1
Merge branch 'main' into main
vasilelucianbrinzei Sep 22, 2026
533ca2c
updated images, slight updates to steps, fixomat
chrishoina Sep 29, 2026
c35400c
updated numbering
chrishoina Sep 29, 2026
28631c8
Merge branch 'main' into main
chrishoina Sep 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 14 additions & 12 deletions build-ords-apis-in-adb/2-build-ords-apis/build-ords-apis.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Estimated Lab Time: 25 minutes

6. The definiton for the PL/SQL procedure will be visible in the SQL Worksheet. This produre expects the following parameters: `p_emp_name`, `p_dept_code` (associated with a `dept_id`), and `comments`. It then inserts these values into the `Employee` table.

![Reviewing the PLSQL Procedure in the worksheet](./images/5-plsql-definition-in-sql-worksheet.png " ")
![Reviewing the PLSQL Procedure in the worksheet](./images/5-plsql-procedure-definition-in-sql-worksheet.png " ")

7. Next, you'll insert a new row into the `Employee` table, using this procedure. Take note of one of the available, valid Department Codes: `EN003, FN002, HR001, IT007, LG006, LG009, MK005, OP010, SA004, SP008`.

Expand Down Expand Up @@ -81,23 +81,23 @@ Estimated Lab Time: 25 minutes

![Click hamburger then rest](./images/11-click-hamburger-then-rest.png " ")

2. You are now in the **REST** Workshop. Here is where you build and test your ORDS APIs. Click the **AUTOREST** card.
2. Welcome to the **REST** Workshop. Click the **AUTOREST** card.

![Click the autorest card](./images/12-click-the-autorest-card.png " ")

3. This is the table you AutoREST-enabled in a previous lab. Before you continue, take a look at the resources available to you (these apply to all of your modules). Right-click the kebab menu, then select **Export OpenAPI**.

![Export OpenAPI on the project table](./images/13-autorest-table-project-export-open-api.png " ")

4. You'll see a downloadable version of your API in the OpenAPI specification. This makes it easy for you to review, and share definitions.
4. You'll see a downloadable version of your API in the OpenAPI specification. This makes it easy for you to review, and share your API definitions.

![The downloadable OpenAPI Export](./images/14-open-api-export-download.png " ")

5. Close the Export OpenAPI slider, click the kebab menu again and select **OpenAPI View**.

![The OpenAPI view on Project table](./images/15-openapi-view-on-project.png " ")

6. You will see an in-browser testing dashboard based on the OpenAPI specification. Here you can test your APIs without having to log into, or open a separate application. When satisfied, click the **Modules** tab at the top of the REST Workshop page.
6. You'll see an in-browser testing dashboard based on the OpenAPI specification. Here you can test your APIs without having to log into, or open a separate application. When satisfied, click the **Modules** tab at the top of the REST Workshop page.

![OpenAPI view dashboard](./images/16-open-api-view-dashboard.png " ")

Expand Down Expand Up @@ -205,8 +205,8 @@ Estimated Lab Time: 25 minutes
<copy>
DECLARE
L_SQLCODE PLS_INTEGER;
BEGIN
DEMO_USER.PR_ADD_AND_ASSIGN_EMPLOYEE(
BEGIN -- Optionally use a fully-qualified name like [SCHEMA].PR_ADD_AND_ASSIGN_EMPLOYEE();
PR_ADD_AND_ASSIGN_EMPLOYEE(
P_EMP_NAME => :EMP_NAME,
P_DEPT_CODE => :DEPT_CODE,
P_COMMENTS => :COMMENTS
Expand Down Expand Up @@ -272,35 +272,37 @@ Estimated Lab Time: 25 minutes

> **NOTE:** The values have already been included in the sample Anonymous Block snippet, but simply clicking the Handler Parameter name will place the parameter value at the current location of your cursor.

8. Now, you can test this new POST API. From the Handler's kebab menu, select **Get cURL command**, then the **+ plus** button of the curl Command modal. A Substitutions modal will appear. Enter in values for `EMP_NAME`, `DEPT_CODE`, `COMMENTS`, and check Null for the `response_status` and `response_message`. Be sure to review and select valid values for the `DEPT_CODE`. Once finished, click **OK**.
8. Now, you can test this new POST API. From the Handler's kebab menu, select **Get cURL command**, then the **+ plus** button of the curl Command modal.

![Retrieving the curl command](./images/42-getting-the-post-curl.png " ")

![clicking the plus button](./images/27-press-plus-button-get.png " ")

9. A Substitutions modal will appear. Enter in values for `EMP_NAME`, `DEPT_CODE`, `COMMENTS`, and check Null for the `response_status` and `response_message`. Be sure to review and select valid values for the `DEPT_CODE` (Valid values: `EN003`, `FN002`, `HR001`, `IT007`, `LG006`, `LG009`, `MK005`, `OP010`, `SA004`, `SP008`). Once finished, click **OK**.

![Adding substitution details](./images/43-entering-substitution-details.png " ")

9. Copy the curl command into a clipboard, and remove the `response_status` and `response_message` key:value pairs, and the no-longer-required comma. Then, paste the updated command in a Terminal window and execute the curl command.
10. Copy the curl command into a clipboard, and remove the `response_status` and `response_message` key:value pairs, and the no-longer-required comma. Then, paste the updated command in a Terminal window and execute the curl command.

![Copying the post request](./images/44-clicking-copy-for-post.png " ")

![Empty key value pairs](./images/44-1-empty-key-value-pairs.png " ")

![Empty key value pairs removed](./images/44-2-key-value-pairs-removed.png " ")

10. You should see the success response message in your terminal.
11. You should see the success response message in your terminal.

![Reviewing the response in terminal](./images/45-response-in-terminal.png " ")

11. You can also perform a simple query to review that latest INSERT using the following code snippet:
12. You can also perform a simple query to review that latest INSERT using the following code snippet:

```sql
<copy>Select * from Employee where emp_name='The name you used in the POST request';</copy>
```

![Querying the latest insert in sql worksheet](./images/46-querying-latest-post-in-sql-worksheet.png " ")

12. And that's it, you've just successfully created your first two custom ORDS APIs. But you've probably noticed, no security? Continue to the next lab to learn more about securing your ORDS APIs.
13. And that's it, you've just successfully created your first two custom ORDS APIs. But you've probably noticed, no security? Continue to the next lab to learn more about securing your ORDS APIs.

You may now [proceed to the next lab](#next).

Expand All @@ -309,7 +311,7 @@ You may now [proceed to the next lab](#next).
### Author

- Jeff "el jefe" Smith, Distinguished Product Manager
- Chris Hoina, Senior Product Manager
- Chris Hoina, Lead Principal Product Manager

### Last Updated By/Date

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 8 additions & 13 deletions build-ords-apis-in-adb/3-secure-endpoints/secure-endpoints.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,26 +91,21 @@ Estimated Lab Time: 10 minutes

![Description Field](./images/11-create-oauth-client-definition.png " ")

4. Previously you created a Privilege, which includes (enumerates) a Role. Here, you can optionally assign the OAuth Client either the `my.test.role` role, the `my.test.priv` privilege, or both (although in this case, a bit redundant).
4. **Roles** Select the previously created role: `my.test.role` (or your unique role, if it differs).

Selecting *only* the Role is acceptable, since the Privilege you created includes this Role. Since your `records.module` is protected by the same Privilege, this is a valid approach.
![choose-roles-tB](./images/12-create-oauth-client-roles.png " ")

**Roles**
- **Roles:** `my.test.role` (or your unique role, if it differs)
5. **Privileges** Next, choose the privilege: `my.test.priv` (or your unique privilege, if it differs).

![choose-ouath-privs](./images/13-create-oauth-client-privs.png " ")

![choose-roles-tB](./images/12-create-oauth-client-roles.png " ")
5. Click the **Create** button when complete.

Alternatively, you can simply assign the Privilege directly. And since that Privilege enumerates the Role, this is valid as well.

**Privileges**
- **Roles:** `my.test.role` (or your unique role, if it differs)

![choose-ouath-privs](./images/13-create-oauth-client-privs.png " ")

5. Choose an approach, and click the **Create** button when complete.

## Task 4: Testing the OAuth2.0 client

1. After clicking **Create**, a Client Secret modal will appear. Copy the Secret Client value to your clipboard or a text editor.

![Copy my client secret](./images/14-my-oauth-client-secret.png " ")
Expand Down Expand Up @@ -142,7 +137,7 @@ Estimated Lab Time: 10 minutes

> ![Obtaining-the-bearer-token-part-one](./images/17-obtaining-the-bearer-token-part-one.png " ")

4. Execute your cURL command; you will recieve a valid Access Token. In this example, you can use the `GET` endpoint that you created in **Lab 2, Task 3: Building an ORDS GET API** as your target endpoint.
4. Execute your cURL command; you will receive a valid Access Token. In this example, you can use the `GET` endpoint that you created in **Lab 2, Task 3: Building an ORDS GET API** as your target endpoint.

![Obtaining-the-bearer-token-part-two](./images/18-obtaining-the-bearer-token-part-two.png " ")

Expand Down Expand Up @@ -171,7 +166,7 @@ You may now [proceed to the next lab](#next).
### Author

- Jeff Smith, Distinguished Product Manager
- Chris Hoina, Senior Product Manager
- Chris Hoina, Lead Principal Product Manager

### Last Updated By/Date

Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
CREATE TABLE "DEMO_USER"."DEPARTMENT"
CREATE TABLE "DEPARTMENT"
( "DEPT_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE ,
"DEPT_CODE" VARCHAR2(5 BYTE) COLLATE "USING_NLS_COMP",
"ESTABLISHED" DATE,
"DETAILS" JSON
) DEFAULT COLLATION "USING_NLS_COMP" ;

CREATE UNIQUE INDEX "DEMO_USER"."DEPT_CODE_UK" ON "DEMO_USER"."DEPARTMENT" ("DEPT_CODE")
CREATE UNIQUE INDEX "DEPT_CODE_UK" ON "DEPARTMENT" ("DEPT_CODE")
;

CREATE UNIQUE INDEX "DEMO_USER"."DEPT_ID_PK" ON "DEMO_USER"."DEPARTMENT" ("DEPT_ID")
CREATE UNIQUE INDEX "DEPT_ID_PK" ON "DEPARTMENT" ("DEPT_ID")
;

CREATE UNIQUE INDEX "DEMO_USER"."DEPARTMENT_DEPT_CODE_UQ" ON "DEMO_USER"."DEPARTMENT" (UPPER("DEPT_CODE"))
CREATE UNIQUE INDEX "DEPARTMENT_DEPT_CODE_UQ" ON "DEPARTMENT" (UPPER("DEPT_CODE"))
;

ALTER TABLE "DEMO_USER"."DEPARTMENT" MODIFY ("DEPT_ID" NOT NULL ENABLE);
ALTER TABLE "DEPARTMENT" MODIFY ("DEPT_ID" NOT NULL ENABLE);

ALTER TABLE "DEMO_USER"."DEPARTMENT" MODIFY ("DEPT_CODE" CONSTRAINT "DEPT_CODE_NN" NOT NULL ENABLE);
ALTER TABLE "DEPARTMENT" MODIFY ("DEPT_CODE" CONSTRAINT "DEPT_CODE_NN" NOT NULL ENABLE);

ALTER TABLE "DEMO_USER"."DEPARTMENT" ADD CONSTRAINT "DEPT_ID_PK" PRIMARY KEY ("DEPT_ID")
ALTER TABLE "DEPARTMENT" ADD CONSTRAINT "DEPT_ID_PK" PRIMARY KEY ("DEPT_ID")
USING INDEX ENABLE;

Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
CREATE TABLE "DEMO_USER"."EMPLOYEE"
CREATE TABLE "EMPLOYEE"
( "EMP_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE ,
"EMP_NAME" VARCHAR2(100 BYTE) COLLATE "USING_NLS_COMP",
"DEPT_ID" NUMBER,
"COMMENTS" CLOB COLLATE "USING_NLS_COMP"
) DEFAULT COLLATION "USING_NLS_COMP" ;

CREATE UNIQUE INDEX "DEMO_USER"."EMP_ID_PK" ON "DEMO_USER"."EMPLOYEE" ("EMP_ID")
CREATE UNIQUE INDEX "EMP_ID_PK" ON "EMPLOYEE" ("EMP_ID")
;

CREATE INDEX "DEMO_USER"."EMP_DEPARTMENT_IX" ON "DEMO_USER"."EMPLOYEE" ("DEPT_ID")
CREATE INDEX "EMP_DEPARTMENT_IX" ON "EMPLOYEE" ("DEPT_ID")
;

ALTER TABLE "DEMO_USER"."EMPLOYEE" MODIFY ("EMP_ID" NOT NULL ENABLE);
ALTER TABLE "EMPLOYEE" MODIFY ("EMP_ID" NOT NULL ENABLE);

ALTER TABLE "DEMO_USER"."EMPLOYEE" MODIFY ("EMP_NAME" CONSTRAINT "EMP_NAME_NN" NOT NULL ENABLE);
ALTER TABLE "EMPLOYEE" MODIFY ("EMP_NAME" CONSTRAINT "EMP_NAME_NN" NOT NULL ENABLE);

ALTER TABLE "DEMO_USER"."EMPLOYEE" MODIFY ("DEPT_ID" CONSTRAINT "EMP_DEPT_ID_NN" NOT NULL ENABLE);
ALTER TABLE "EMPLOYEE" MODIFY ("DEPT_ID" CONSTRAINT "EMP_DEPT_ID_NN" NOT NULL ENABLE);

ALTER TABLE "DEMO_USER"."EMPLOYEE" ADD CONSTRAINT "EMP_ID_PK" PRIMARY KEY ("EMP_ID")
ALTER TABLE "EMPLOYEE" ADD CONSTRAINT "EMP_ID_PK" PRIMARY KEY ("EMP_ID")
USING INDEX ENABLE;

ALTER TABLE "DEMO_USER"."EMPLOYEE" ADD CONSTRAINT "FK_EMPLOYEE_DEPT" FOREIGN KEY ("DEPT_ID")
REFERENCES "DEMO_USER"."DEPARTMENT" ("DEPT_ID") ENABLE;
ALTER TABLE "EMPLOYEE" ADD CONSTRAINT "FK_EMPLOYEE_DEPT" FOREIGN KEY ("DEPT_ID")
REFERENCES "DEPARTMENT" ("DEPT_ID") ENABLE;

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CREATE OR REPLACE EDITIONABLE PROCEDURE "DEMO_USER"."PR_ADD_AND_ASSIGN_EMPLOYEE" (
CREATE OR REPLACE EDITIONABLE PROCEDURE "PR_ADD_AND_ASSIGN_EMPLOYEE" (
p_emp_name IN VARCHAR2,
p_dept_code IN VARCHAR2,
p_comments IN CLOB
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
CREATE TABLE "DEMO_USER"."PROJECT"
CREATE TABLE "PROJECT"
( "PROJ_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE ,
"PROJ_NAME" VARCHAR2(100 BYTE) COLLATE "USING_NLS_COMP",
"DEPT_ID" NUMBER,
"IS_ACTIVE" BOOLEAN
) DEFAULT COLLATION "USING_NLS_COMP" ;

CREATE UNIQUE INDEX "DEMO_USER"."PROJ_ID_PK" ON "DEMO_USER"."PROJECT" ("PROJ_ID")
CREATE UNIQUE INDEX "PROJ_ID_PK" ON "PROJECT" ("PROJ_ID")
;

CREATE INDEX "DEMO_USER"."PROJ_DEPARTMENT_IX" ON "DEMO_USER"."PROJECT" ("DEPT_ID")
CREATE INDEX "PROJ_DEPARTMENT_IX" ON "PROJECT" ("DEPT_ID")
;

ALTER TABLE "DEMO_USER"."PROJECT" MODIFY ("PROJ_ID" NOT NULL ENABLE);
ALTER TABLE "PROJECT" MODIFY ("PROJ_ID" NOT NULL ENABLE);

ALTER TABLE "DEMO_USER"."PROJECT" MODIFY ("PROJ_NAME" CONSTRAINT "PROJ_NAME_NN" NOT NULL ENABLE);
ALTER TABLE "PROJECT" MODIFY ("PROJ_NAME" CONSTRAINT "PROJ_NAME_NN" NOT NULL ENABLE);

ALTER TABLE "DEMO_USER"."PROJECT" MODIFY ("DEPT_ID" CONSTRAINT "PROJ_DEPT_ID_NN" NOT NULL ENABLE);
ALTER TABLE "PROJECT" MODIFY ("DEPT_ID" CONSTRAINT "PROJ_DEPT_ID_NN" NOT NULL ENABLE);

ALTER TABLE "DEMO_USER"."PROJECT" ADD CONSTRAINT "PROJ_ID_PK" PRIMARY KEY ("PROJ_ID")
ALTER TABLE "PROJECT" ADD CONSTRAINT "PROJ_ID_PK" PRIMARY KEY ("PROJ_ID")
USING INDEX ENABLE;

ALTER TABLE "DEMO_USER"."PROJECT" ADD CONSTRAINT "FK_PROJECT_DEPT" FOREIGN KEY ("DEPT_ID")
REFERENCES "DEMO_USER"."DEPARTMENT" ("DEPT_ID") ENABLE;
ALTER TABLE "PROJECT" ADD CONSTRAINT "FK_PROJECT_DEPT" FOREIGN KEY ("DEPT_ID")
REFERENCES "DEPARTMENT" ("DEPT_ID") ENABLE;

34 changes: 25 additions & 9 deletions build-ords-apis-in-adb/4-workshop-scripts/oauth_client.sql
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@

-- Generated by ORDS REST Data Services 26.2.3.r2371104
-- Schema: DEMO_USER Date: Thu Sep 17 07:11:13 2026
-- Schema: ORDSDEMO Date: Tue Sep 29 08:10:52 2026
--

DECLARE
Expand All @@ -14,24 +15,39 @@ BEGIN

ORDS.CREATE_ROLE(
p_role_name=> 'my.test.role');
l_roles(1) := 'my.test.role';

ORDS.DEFINE_PRIVILEGE(
p_privilege_name => 'my.test.priv',
p_roles => l_roles,
p_patterns => l_patterns,
p_modules => l_modules,
p_label => 'my.test.priv',
p_description => 'my.test.priv',
p_comments => NULL);

l_roles.DELETE;
l_modules.DELETE;
l_patterns.DELETE;


ORDS_SECURITY.IMPORT_CLIENT(
p_name => 'my_test_oauth_client',
p_client_id => 'rP9btP7w5Md72r6iEK3Tog..',
p_name => 'my.oauth.client',
p_client_id => 'qMdpq2WHzkzd1aPHawTmvw..',
p_grant_type => 'client_credentials',
p_owner => 'DEMO_USER',
p_description => 'my_test_oauth_client',
p_owner => 'ORDSDEMO',
p_description => 'my.oauth.client',
p_origins_allowed => NULL,
p_redirect_uri => NULL,
p_support_email => 'my_email@example.com',
p_support_uri => 'https://www.my-company.com/support',
p_support_email => 'test@email.com',
p_support_uri => 'https://example.com',
p_token_duration => NULL,
p_refresh_duration => NULL,
p_code_duration => NULL,
p_privilege_names => NULL);
p_privilege_names => 'my.test.priv');

ORDS_SECURITY.GRANT_CLIENT_ROLE(
p_client_name => 'my_test_oauth_client',
p_client_name => 'my.oauth.client',
p_role_name => 'my.test.role');
COMMIT;
EXCEPTION
Expand Down
Loading
Loading