ords config list --include-defaults
That’s it. Goodbye!
I’m kidding, there’s more. But if you don’t feel like reading anymore, bookmark this post and return when you’re ready.
Assuming you have ORDS installed, you too can execute the ords config list --include-defaults
command to reveal almost all the configuration settings for your ORDS installation.
Here is what my configuration looks like:
Configuration settings: what am I seeing?
This command is a quick way to see all the settings from your .XML configuration files (i.e., the settings.xml
and pool.xml
files), including other settings automatically configured for you when you first ran the ords interactive installer.
In short: All your default settings and any that you may have added or changed are on one screen.
Read on to explore further…
Version, config folder location, and pool information
I've broken the configuration settings into sections. Anywhere you see red arrows, are just areas of intrigue (personally); however THIS LIST IS NOT EXHAUSTIVE.
I use this first section as an easy, convenient way to determine the ORDS version I’m running. Additionally, you can verify the location of your configuration folder (in case you forget). You can also verify the database pool (default
is the default name for the pool unless you modify the name) you are using.
If you want to learn more about the ORDS pools, visit this link and this link.
💡I only have single install, that is why I see default
as the default database pool.
Pool and global settings
Not much here that you probably already don’t know. However, in the future I will look at the features associated with the database.api.management.services.disabled = false
property (also, I think the way this is written is a referred to as a “logical negation”, and it hurts my brain to read).
Read more about this service here. But in short (and once you’ve created the requisite user), you can explore various services such as:
- DBCA Jobs, available methods:
DELETE, GET and POST
- DBCA Templates
GET
- Oracle Home Environment
GET
- PDB Lifecycle
DELETE, GET, POST
- Open Service Broker
DELETE, GET, and PUT
Debug and Error
My settings are false
(these are the default settings). But if I were to, for instance, set debug.printDebugToScreen = true
, I would then be able to see any error messages in the browser.
I can change the responseFormat
to always display as JSON, HTML, or AUTO
(i.e., Automatically determine the most appropriate format).
ℹ️ Note: Must explore this further and report back after I've sufficiently tinkered.
Did you know you can create custom HTTP error pages in ORDS? These two error.properties
appear to be associated in some way. So if you were two create custom error pages, you’d probably need to consider the format as well. Nonetheless, could you imagine the fun you could have coming up with something totally unique to your application?
I'm definitely adding this to my "Productive Procrastination" list 🤣!
GraphQL and SQL Developer Web
ORDS supports GraphQL now; did you know?! I just set up my local installation (it wasn’t too bad once I figured out how to properly set my Java to GraalVM 😑), so I can start learning GraphQL queries.
Did you know ORDS ships with the GraphiQL IDE now? Learn how to set it up here.
Cookies and ICAP
I honestly wouldn’t have known ORDS could offload virus scanning to ICAP (Internet Content Adaptation Protocol) servers unless I looked at what was actually in the configuration settings. I’m not sure if I’ll configure this anytime soon, but maybe you will.
Bookmark this link for future reference!
Want to bore yourself? Read more about ICAP in this RFC 3507 memo.
Java Database Connectivity (JDBC)
I am NOT going to spend much time here. I still need toggle these parameters and experiment more. However, I will point out that the default setting for maximum JDBC connections is 20 (jdbc.MaxLimit
setting).
jdbc.MaxLimit=20
is probably too low for a production environment. I’ve left it as-is because it’s just me, and I’m doing everything locally in my Podman container.
Suppose you need to familiarize yourself with JDBC or Universal Connection Pools (UCPs)? In that case, we should both read the introduction sections of the following guides:
MongoDB
I have spent little time with MongoDB, but from what I understand, the Oracle Database API for MongoDB translates the MongoDB wire protocol into SQL statements executed by the Oracle.
What I’m inferring from our docs is that once you’ve migrated your data from a MongoDB into a supported Oracle database, you (or your application) can keep talking “MongoDB speak,” and at least in this case, ORDS will be able to interpret this Mongospeak and query the database on your behalf 🤯!
If this describes you or your use-case, you’re in luck; I found some excellent resources!
Security
You’ll notice, no red arrows here. I have yet to spend much time with this section. However, I want to draw your attention to the security.jwks.[etc...]
and security.jwt.[etc...]
properties.
In ORDS 23.3, we introduced JSON Web Tokens (JWTs) support, so these properties very much concern that new functionality.
In short, we've allowed you to incorporate JWT authentication provided through third parties into your APIs.
Good resources to bookmark:
- Configurable settings in ORDS (scroll down to till you see the
security
settings) - JWTs and the ORDS Developer
- About JSON Web Tokens and JSON Web Keys (JWKs)
Standalone (Jetty)
The nice thing about ORDS is that you can use the embedded Jetty server as a local web server for testing. This section shows most of the essential settings for running Jetty in “Standalone mode.”
I use the term “testing” because our docs state, “the default configuration of Jetty is optimized for the most common ORDS use cases.” I interpret this as, “This is designed to expose you to Jetty (and make it easy to get you up and running), but you’ll probably need to adjust this according to your own requirements.”
The only things I want to point out here are the standalone.doc.root
and standalone.static.context.path
properties. These settings will look familiar if you’ve ever performed an APEX installation (available here, for free, BTW).
However, if you want to deploy custom HTML, CSS, and image files, you can configure this for ORDS. We have an overview in our docs here.
I think I've just stumbled upon another fun Friday afternoon project 😍!
Okay, that’s it for now. Thank you for choosing to waste your time with me.
What’s the point of this post?
There was no point to this post. I’m constantly wasting time researching technology and techniques I don’t need to know. However, in this case, I’ve hopefully:
- left you with at least one helpful ORDS command-line command (
ords config list --include-defaults
), and - provided you with some helpful explanations and resources on what is contained in your ORDS installation (again, this list is NOT exhaustive)
And if you found this post helpful, please share it!
Follow
And don’t forget to follow, like, subscribe, share, taunt, troll, or stalk me!