OHI Studio
OHI Studio streamlines Oracle Health Insurance development by bringing Dynamic Logic (Groovy), Floorplans, Logs, Object exploration, and multi-environment management into VS Code. It is designed for OHI developers, consultants, and support engineers who work with Policies, Claims, and other OHI applications and need a fast inner loop for editing, testing, and deploying artifacts.
- Work directly from your editor: send, fetch, test, preview
- One place to define and switch Environments and Applications
- Rich editor assistance: hover, inlay hints, signature lenses, and object-aware autocomplete
- Built-in logs viewer and trace file reader
Quick Start
- Open the Environments window
- Command Palette → “OHI: Manage Environments”
- Add an Environment (name + token), then add an Application (name + Base URL; do not include /api)
- Optionally set the Objects Folder Path for that app (folder that directly contains .groovy files)
- Select target
- Use the status bar left side:
- OHI Env: Select the active Environment
- OHI App: Select the active Application
- Open a file and use commands
- Open a .groovy DyLo file or a floorplan_*.json
- Use editor title actions or context menu to Send / Get / Test (DyLo) or Send / Get / Preview (Floorplan)
- Open “OHI: Query Application Logs” to search logs
What’s included
- DyLos (Groovy)
- Send, Get, Test endpoints, rich editor assistance (hover, inlay hints, signature CodeLens), object-aware autocomplete
- Floorplans (JSON)
- Send, Get, and a live preview webview
- View Objects
- Searchable viewer of your .groovy data model and Signatures, with cross-links
- Logs
- Unified logs viewer for Application and Dynamic Logic events, with trace file modal viewer
- Environments Management
- Full create/edit/delete for envs and apps in a dedicated window; quick selection in status bar
Entities and Features
Below each feature, minimum requirements and relevant settings are highlighted to stand out.
DyLos (Groovy)
Actions
- OHI: Send Dynamic Logic — updates the DyLo on the server
- OHI: Get Dynamic Logic — fetches the DyLo and replaces editor content
- OHI: Test Dynamic Logic — runs code against /api/testdynamiclogic/{key}
Editor assistance
- “📖” inlay hints on signature headers; recognized object variables are highlighted inline with a rounded rectangle (color customizable)
- Hover tooltips linking to related Objects/Signatures
- Signature input variables shown as a CodeLens on the next line
- Object-aware autocomplete: properties/methods from your Objects folder
⚠ REQUIREMENTS
- Environment and Application selected (status bar)
- Valid token configured for the selected environment
- For object-aware autocomplete/links: Application’s Objects Folder Path must point to a folder that directly contains .groovy files (you can set it in the Environments window or via “OHI: View Objects” on first use)
- For signature CodeLens visibility: VS Code “Editor: Code Lens” must be enabled
- For inlay hints visibility: VS Code “Editor: Inlay Hints” must be enabled
- For hovers: VS Code “Editor > Hover: Enabled” must be enabled
🔧 SETTINGS (ohiStudio)
- confirmBeforeSend (boolean, default true)
- confirmBeforeGetReplace (boolean, default true)
- preferFilenameKey (boolean, default true) — derive DyLo key from filename when available
- api.pathTemplate.dynamicLogic (string, default “/api/generic/dynamiclogic/key/${key}”)
- testDynamicLogic.confirmBeforeTest (boolean, default true)
- testDynamicLogic.sendBeforeRun (boolean, default true)
- features.bookHintsEnabled (boolean, default true) — toggle “📖” inlay hints
- features.hoverEnabled (boolean, default true) — toggle hover tooltips
- features.signatureGhostEnabled (boolean, default true) — toggle signature CodeLens/ghost
- features.objectsAutocompleteEnabled (boolean, default true) — toggle object-aware autocomplete
- http.verifySSL (boolean, default true)
- http.timeoutMs (number, default 20000)
Notes
- If a token is expired, you will be prompted to refresh it.
- DyLo key is determined by filename or “-- Name:” header (depending on preferFilenameKey).
- Object-aware autocomplete and hovers depend on a valid Objects Folder Path.
- To customize the variable highlight color, run “OHI: Pick Object Highlight Color” (updates ohiStudio.features.objectTokenHighlightColor).
Floorplans (JSON)
Actions
- OHI: Send Floorplan — updates floorplan on the server
- OHI: Get Floorplan — fetches floorplan into the editor
- OHI: Preview Floorplan — webview that renders a quick layout (searches, actions, sections, tabs, etc.)
⚠ REQUIREMENTS
- Environment and Application selected (status bar)
- Valid token configured
- A floorplan_.json (or floorplans_.json) file is open to use these commands
🔧 SETTINGS (ohiStudio)
- confirmBeforeSend (boolean, default true)
- confirmBeforeGetReplace (boolean, default true)
- api.pathTemplate.floorplan (string, default “/api/generic/floorplans/key/${key}”)
- http.verifySSL (boolean, default true)
- http.timeoutMs (number, default 20000)
Notes
- The preview is a convenience visualization and not a full runtime emulator.
View Objects
What it does
- Parses your local .groovy data model (and optional signatures) and provides a searchable, interactive viewer
- Cross-links properties and signature parameter types so you can navigate across classes
How to open
- OHI: View Objects (interactive viewer)
- Inlay hint / Hover / CodeLens links → “Open Objects for Class”
⚠ REQUIREMENTS
- Environment and Application selected (status bar)
- Application’s Objects Folder Path must be set to a folder that directly contains the datamodel .groovy files
- Generated from /api/objects/generate
- If missing, you will be prompted to select it
🔧 SETTINGS (ohiStudio)
- features.objectsAutocompleteEnabled (boolean, default true) — impacts editor suggestions (not the viewer itself)
- features.bookHintsEnabled / hoverEnabled / signatureGhostEnabled — impact editor assistance that links into the viewer
Notes
- If you have a “signatures” subfolder under your objects folder, signature files will be parsed to show input parameters.
Logs
What it does
- Unified viewer for Application and Dynamic Logic events with date-range search
- Message filter and DyLo code filter (when viewing dynamic logic events)
- “View Trace File” link opens a modal and fetches the remote trace log securely
Open with
- OHI: Query Application Logs
⚠ REQUIREMENTS
- Environment and Application selected (status bar)
- Valid token configured
- Server endpoints reachable from your machine
🔧 SETTINGS (ohiStudio)
- logs.apiPath.applicationEvents (string, default “/api/generic/logapplicationevents/search”)
- logs.apiPath.dynamicLogicEvents (string, default “/api/generic/logdynamiclogicevents/search”)
- logs.pageSize (number, default 50)
- logs.serverTimeZone (string, default “Asia/Manila”)
- http.verifySSL (boolean, default true)
- http.timeoutMs (number, default 20000)
Notes
- Supports pagination (Load More).
- Highlights certain patterns to improve readability, e.g., OHI class lines in stack traces.
Environments Management
What it does
- Dedicated window to create/edit/delete Environments and Applications
- Set per-environment token, custom auth header name/value template, and server timezone
- Set per-application Base URL and Objects Folder Path
- Status bar selectors to switch active Environment and Application
Open with
⚠ REQUIREMENTS
- None (this window is how you initially configure everything)
🔧 SETTINGS (ohiStudio)
- auth.headerName (string, default “Authorization”)
- auth.headerValueTemplate (string, default “Bearer ${token}”)
- auth.tokenMaxAgeMinutes (number, default 60)
- logs.serverTimeZone (string, default “Asia/Manila”) — global default, can be overridden per environment
Notes
- Tokens are stored in VS Code Secret Storage under an environment-specific key.
- Changing settings or feature toggles refreshes providers immediately; no reload needed.
Configuration Reference (selected)
HTTP and Auth
- ohiStudio.http.verifySSL (boolean, default true)
- ohiStudio.http.timeoutMs (number, default 20000)
- ohiStudio.auth.headerName (string, default “Authorization”)
- ohiStudio.auth.headerValueTemplate (string, default “Bearer ${token}”)
- ohiStudio.auth.tokenMaxAgeMinutes (number, default 60)
Dynamic Logic and Floorplans
- ohiStudio.confirmBeforeSend (boolean, default true)
- ohiStudio.confirmBeforeGetReplace (boolean, default true)
- ohiStudio.preferFilenameKey (boolean, default true)
- ohiStudio.api.pathTemplate.dynamicLogic (string, default “/api/generic/dynamiclogic/key/${key}”)
- ohiStudio.api.pathTemplate.floorplan (string, default “/api/generic/floorplans/key/${key}”)
Testing and Logs
- ohiStudio.testDynamicLogic.confirmBeforeTest (boolean, default true)
- ohiStudio.testDynamicLogic.sendBeforeRun (boolean, default true)
- ohiStudio.logs.apiPath.applicationEvents (string)
- ohiStudio.logs.apiPath.dynamicLogicEvents (string)
- ohiStudio.logs.pageSize (number, default 50)
- ohiStudio.logs.serverTimeZone (string, default “Asia/Manila”)
Editor Feature Toggles (default: enabled)
- ohiStudio.features.bookHintsEnabled — inlay “📖” hints
- ohiStudio.features.hoverEnabled — hover tooltips
- ohiStudio.features.signatureGhostEnabled — signature variables CodeLens/ghost
- ohiStudio.features.objectsAutocompleteEnabled — object-aware autocomplete
❤️ Buy me a coffee
If OHI Studio saves you time and boosts your productivity, consider supporting its development!
🛡 Security
- Tokens are stored securely via VS Code Secret Storage (per environment).
- Authentication headers are masked in logs.
- Avoid disabling TLS (ohiStudio.http.verifySSL) in production environments.
Troubleshooting
- 401/403 Unauthorized: Your token may be expired; you’ll be prompted to refresh it.
- 404 Not Found: Verify the Application’s Base URL in Manage Environments.
- SSL errors in dev: Set ohiStudio.http.verifySSL to false (not recommended for production).
- Check the “OHI Studio” Output channel for HTTP details and errors.
Changelog
| |