@opscompass/skills 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +78 -0
  2. package/manifest.json +35 -0
  3. package/package.json +23 -0
  4. package/skills/opscompass-oracle-licensing/.opscompass-runtime/tools/cli-entrypoint.js +15 -0
  5. package/skills/opscompass-oracle-licensing/SKILL.md +211 -0
  6. package/skills/opscompass-oracle-licensing/api/entitlement-compliance/entitlement-compliance.json +189 -0
  7. package/skills/opscompass-oracle-licensing/api/entitlement-deployment/entitlement-deployment +26 -0
  8. package/skills/opscompass-oracle-licensing/api/entitlement-usage/entitlement-usage.json +114 -0
  9. package/skills/opscompass-oracle-licensing/assets/mock-entitlements/deployment-details.json +61 -0
  10. package/skills/opscompass-oracle-licensing/assets/mock-entitlements/license-usage-map.json +70 -0
  11. package/skills/opscompass-oracle-licensing/assets/mock-entitlements/overall-compliance.json +36 -0
  12. package/skills/opscompass-oracle-licensing/package.json +3 -0
  13. package/skills/opscompass-oracle-licensing/references/evidence-model.md +90 -0
  14. package/skills/opscompass-oracle-licensing/references/report-structure.md +54 -0
  15. package/skills/opscompass-oracle-licensing/scripts/fake-entitlements-api.tool.js +31 -0
  16. package/skills/opscompass-oracle-licensing/scripts/fake_entitlements_api.js +72 -0
  17. package/skills/opscompass-oracle-licensing/scripts/tools.js +2 -0
  18. package/skills/opscompass-resources/.opscompass-runtime/tools/cli-entrypoint.js +15 -0
  19. package/skills/opscompass-resources/.opscompass-runtime/tools/index.js +2 -0
  20. package/skills/opscompass-resources/.opscompass-runtime/tools/opsc-cli-context.js +24 -0
  21. package/skills/opscompass-resources/.opscompass-runtime/tools/opsc-cli-defaults.js +125 -0
  22. package/skills/opscompass-resources/.opscompass-runtime/tools/opsc-cli.js +90 -0
  23. package/skills/opscompass-resources/SKILL.md +335 -0
  24. package/skills/opscompass-resources/package.json +3 -0
  25. package/skills/opscompass-resources/references/resources-commands.md +178 -0
  26. package/skills/opscompass-resources/scripts/build-resources-command.tool.js +53 -0
  27. package/skills/opscompass-resources/scripts/build_resources_command.js +240 -0
  28. package/skills/opscompass-resources/scripts/list-and-fetch-latest-configs.tool.js +116 -0
  29. package/skills/opscompass-resources/scripts/list_and_fetch_latest_configs.js +714 -0
  30. package/skills/opscompass-resources/scripts/map-oracle-workloads-to-platform-cpus.tool.js +24 -0
  31. package/skills/opscompass-resources/scripts/map_oracle_workloads_to_platform_cpus.js +273 -0
  32. package/skills/opscompass-resources/scripts/opscompass-defaults.tool.js +80 -0
  33. package/skills/opscompass-resources/scripts/opscompass-resources.tool.js +51 -0
  34. package/skills/opscompass-resources/scripts/summarize-latest-configuration.tool.js +24 -0
  35. package/skills/opscompass-resources/scripts/summarize-resources-list.tool.js +24 -0
  36. package/skills/opscompass-resources/scripts/summarize_latest_configuration.js +254 -0
  37. package/skills/opscompass-resources/scripts/summarize_resources_list.js +126 -0
  38. package/skills/opscompass-resources/scripts/tools.js +16 -0
package/README.md ADDED
@@ -0,0 +1,78 @@
1
+ # OpsCompass Skills
2
+
3
+ `@opscompass/skills` provides portable Skills for working with OpsCompass inventory, configuration, and Oracle licensing evidence. Each Skill includes instructions, references, and compiled Node.js helpers.
4
+
5
+ ## Install
6
+
7
+ Requires Node.js `>=22.20.0 <25`.
8
+
9
+ ```sh
10
+ npm install @opscompass/skills
11
+ ```
12
+
13
+ The package contains these Skills:
14
+
15
+ - [Resources](./skills/opscompass-resources/SKILL.md): discover resources and retrieve inventory and configuration evidence.
16
+ - [Oracle Licensing](./skills/opscompass-oracle-licensing/SKILL.md): organize Oracle licensing assessments using workload, infrastructure, and entitlement evidence.
17
+
18
+ Read the selected Skill's `SKILL.md` before use. To use a Skill with an agent, follow that agent's supported Skill installation or loading procedure and select the corresponding directory under `node_modules/@opscompass/skills/skills/`. Installing the npm package alone does not register Skills with an agent.
19
+
20
+ ## Package layout and exported paths
21
+
22
+ ```text
23
+ @opscompass/skills/
24
+ README.md
25
+ package.json
26
+ manifest.json
27
+ skills/
28
+ opscompass-resources/
29
+ opscompass-oracle-licensing/
30
+ ```
31
+
32
+ The package exports `@opscompass/skills/manifest.json` and paths beneath `@opscompass/skills/skills/*`. The manifest identifies the included Skills, their versions, runtime requirements, and packaged entry points.
33
+
34
+ For an ESM application integrating the tool modules:
35
+
36
+ ```js
37
+ import manifest from "@opscompass/skills/manifest.json" with { type: "json" };
38
+ import { tools as resourceTools } from "@opscompass/skills/skills/opscompass-resources/scripts/tools.js";
39
+ import { tools as oracleTools } from "@opscompass/skills/skills/opscompass-oracle-licensing/scripts/tools.js";
40
+
41
+ console.log(manifest.skills.map((skill) => skill.id));
42
+ console.log([...resourceTools, ...oracleTools].map((tool) => tool.name));
43
+ ```
44
+
45
+ Importing a tool module does not run a live query. Follow the selected Skill's instructions and your host's tool-execution interface when invoking tools.
46
+
47
+ ## OpsCompass CLI and authentication
48
+
49
+ Live resource queries require a separately installed OpsCompass CLI, an authenticated session in the selected environment, and permission to access the requested company. This package does not install the CLI, create an OpsCompass account, or provide credentials. Use the CLI setup instructions supplied for your OpsCompass environment.
50
+
51
+ Use the `opscompass` CLI for standalone helpers. Its defaults and authentication state are stored under `~/.opscompass`. When you need to sign in, run `opscompass login`; use `opscompass login --use-device-code` for device-code authentication:
52
+
53
+ ```sh
54
+ opscompass login
55
+ opscompass defaults list-defaults
56
+ ```
57
+
58
+ Keep login, defaults inspection, and helper execution in the same environment. `--company` selects company scope, not an environment. An explicit company takes precedence over that environment's defaults; credentials and defaults must not be borrowed from another environment.
59
+
60
+ From the project where this package is installed, this command **previews** a production resource query without executing it. Replace `YOUR_COMPANY` with your company identifier:
61
+
62
+ ```sh
63
+ node node_modules/@opscompass/skills/skills/opscompass-resources/scripts/build_resources_command.js --cli opscompass --company YOUR_COMPANY --param resource-types=databases/oracle
64
+ ```
65
+
66
+ This command **executes** the resource/configuration workflow using the same selected environment:
67
+
68
+ ```sh
69
+ node node_modules/@opscompass/skills/skills/opscompass-resources/scripts/list_and_fetch_latest_configs.js --cli opscompass --company YOUR_COMPANY --param resource-types=databases/oracle --max-resources 25
70
+ ```
71
+
72
+ Hosts that supply an OpsCompass CLI context control the executable, environment, and session home. In that case, use the host's approved tools and authentication guidance rather than assuming a global CLI or production session. Standalone helpers do not require a host integration. See the [Resources Skill](./skills/opscompass-resources/SKILL.md) for custom executable overrides and additional command guidance.
73
+
74
+ Report query errors as errors, not as an empty inventory. Authentication failures, missing scope, authorization denial, and network failures require different remedies; do not switch environments to work around a failure.
75
+
76
+ ## Oracle licensing evidence
77
+
78
+ The Oracle Licensing Skill's included entitlement fixtures and `fake_entitlements_api.js` helper are synthetic examples for local testing. They do not query a live entitlement service, establish license ownership, or prove compliance. Use real customer-provided entitlement evidence for an assessment, and identify missing evidence explicitly. Follow the [Oracle Licensing Skill](./skills/opscompass-oracle-licensing/SKILL.md) for the assessment workflow.
package/manifest.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "scope": "public",
4
+ "name": "@opscompass/skills",
5
+ "version": "0.1.0",
6
+ "source": {
7
+ "repository": "https://gitlab.com/opscompass-hob/opscompass-ai/opscompassai.git",
8
+ "revision": "3a8fb700e740024080bfb4d2863784cca0254581",
9
+ "dirty": false
10
+ },
11
+ "skills": [
12
+ {
13
+ "id": "opscompass-resources",
14
+ "visibility": "public",
15
+ "version": "1.0.0",
16
+ "sourcePath": "skills/resources/opscompass-resources",
17
+ "root": "skills/opscompass-resources",
18
+ "toolModule": "skills/opscompass-resources/scripts/tools.js",
19
+ "requiredCli": ">=1.3.500 <2",
20
+ "requiredHarness": ">=0.1.0 <1",
21
+ "requiredNode": ">=22 <25"
22
+ },
23
+ {
24
+ "id": "opscompass-oracle-licensing",
25
+ "visibility": "public",
26
+ "version": "1.0.0",
27
+ "sourcePath": "skills/licensing/opscompass-oracle-licensing",
28
+ "root": "skills/opscompass-oracle-licensing",
29
+ "toolModule": "skills/opscompass-oracle-licensing/scripts/tools.js",
30
+ "requiredCli": ">=1.3.500 <2",
31
+ "requiredHarness": ">=0.1.0 <1",
32
+ "requiredNode": ">=22 <25"
33
+ }
34
+ ]
35
+ }
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@opscompass/skills",
3
+ "version": "0.1.0",
4
+ "description": "Public OpsCompass Skills with portable compiled tools and runtime assets",
5
+ "license": "UNLICENSED",
6
+ "type": "module",
7
+ "engines": {
8
+ "node": ">=22.20.0 <25"
9
+ },
10
+ "files": [
11
+ "README.md",
12
+ "manifest.json",
13
+ "skills"
14
+ ],
15
+ "exports": {
16
+ "./manifest.json": "./manifest.json",
17
+ "./skills/*": "./skills/*"
18
+ },
19
+ "publishConfig": {
20
+ "access": "public",
21
+ "registry": "https://registry.npmjs.org/"
22
+ }
23
+ }
@@ -0,0 +1,15 @@
1
+ import { realpathSync, statSync } from "node:fs";
2
+ import { fileURLToPath } from "node:url";
3
+ export function isMainModule(moduleUrl) {
4
+ const entryPoint = process.argv[1];
5
+ if (!entryPoint)
6
+ return false;
7
+ try {
8
+ const entryPath = realpathSync.native(entryPoint);
9
+ return (entryPath === realpathSync.native(fileURLToPath(moduleUrl)) &&
10
+ statSync(entryPath).isFile());
11
+ }
12
+ catch {
13
+ return false;
14
+ }
15
+ }
@@ -0,0 +1,211 @@
1
+ ---
2
+ name: opscompass-oracle-licensing
3
+ description: Perform Oracle Optimized License Assessments using OpsCompass workload, configuration, compliance, entitlement, and infrastructure evidence. Use when users explicitly ask for an Oracle License Assessment, OLA, Oracle licensing report, entitlement-aware Oracle license analysis, Oracle licensing posture, or current-state versus AWS target-state Oracle licensing optimization. Use for AWS Oracle migration/license planning across Amazon RDS for Oracle and Oracle on Amazon EC2, including workloads currently hosted on VMware, Nutanix, Oracle Cloud, AWS, Azure, GCP, or other platforms. Prefer the general OpsCompass resources workflow when the task is only exploratory Oracle inventory, latest configuration, compliance, or hosting analysis without an OLA/license-assessment outcome.
4
+ ---
5
+
6
+ # OpsCompass Oracle Licensing
7
+
8
+ ## Purpose
9
+
10
+ Use this skill for Oracle Optimized License Assessment work. In this skill, OLA means Optimized License Assessment.
11
+
12
+ The goal is to combine OpsCompass evidence, entitlement evidence, current hosting/core exposure, and AWS target-state assumptions to produce practical Oracle licensing findings and AWS optimization recommendations.
13
+
14
+ Strong activation signals:
15
+ - `/ola`
16
+ - "OLA"
17
+ - "Oracle License Assessment"
18
+ - "Oracle licensing assessment"
19
+ - "Oracle licensing report"
20
+ - "entitlement-aware Oracle license analysis"
21
+ - "optimize Oracle licensing for AWS"
22
+ - "optimize Oracle licensing for RDS"
23
+ - "compare Oracle on RDS and EC2"
24
+
25
+ Use the general OpsCompass resources skill instead when the user only wants inventory, latest configuration, compliance details, or hosting correlation without an entitlement-aware assessment or AWS optimization outcome.
26
+
27
+ Read [references/evidence-model.md](references/evidence-model.md) for detailed evidence categories.
28
+ Read [references/report-structure.md](references/report-structure.md) when producing a written OLA-style report.
29
+
30
+ ## Critical Rules
31
+
32
+ - This is a public catalog Skill at `skills/licensing/opscompass-oracle-licensing`; its licensing category does not make it internal. It runs without Studio, Electron, or a harness package. A host-supplied CLI context is optional integration, not a standalone prerequisite.
33
+ - Entitlement truth comes from explicit user-provided entitlement records and evidence from sources the user authorizes for this assessment. Do not infer license ownership, quantity, contractual terms, or a definitive compliance position from usage signals alone. Static fixtures and example ids are illustrative, never customer entitlement evidence.
34
+
35
+ - Evaluate both Amazon RDS for Oracle and Oracle on Amazon EC2 by default for AWS optimization unless the user explicitly scopes to one target or excludes one target.
36
+ - Respect explicit scope such as "RDS only", "exclude EC2", "EC2 only", or "exclude RDS", and state the exclusion in the assessment.
37
+ - Treat Oracle compliance as Oracle license compliance unless the user clearly asks for something else.
38
+ - Treat Oracle compliance findings and Oracle latest-configuration feature signals as licensed feature, option, pack, or parameter usage evidence.
39
+ - Do not say per-database Oracle feature usage is unavailable until both `get-compliance --status open` and `get-latest-configuration` have been checked for the database.
40
+ - Do not conclude Oracle license risk from database configuration alone when hosting and host/core evidence can be obtained.
41
+ - Current host hardware/core exposure is required evidence for strong OLA conclusions when Oracle runs on VMware, Nutanix, Oracle Cloud, EC2, or another infrastructure platform where host/core exposure affects licensing.
42
+ - Surface Limited Use restrictions explicitly.
43
+ - If entitlement, hosting, host hardware, compute, or target-state evidence is missing, label the conclusion partial and name the missing evidence.
44
+
45
+ ## AWS Target Rules
46
+
47
+ - Prefer memory-optimized AWS shape candidates for Oracle when supported by evidence. R Series, X1, and Z1 instance families are common Oracle-friendly candidates, but validate platform availability, workload requirements, entitlement terms, tenancy, architecture, and cost.
48
+ - Include EC2 Dedicated Hosts as a licensing-relevant EC2 option when EC2 is in scope. Dedicated Hosts can be licensing friendly because they may provide clearer host-level control and visibility, but they are not automatically optimal.
49
+ - Validate Dedicated Host recommendations against entitlement terms, current and target core exposure, workload consolidation, HA/DR architecture, operational requirements, and cost.
50
+ - Do not recommend Oracle Standard Edition when RAC usage is present unless the assessment explicitly assumes RAC removal. Oracle RAC is not included in Oracle SE.
51
+ - Do not recommend Amazon RDS for Oracle for workloads that must retain RAC. Oracle RAC is not supported on RDS; RAC workloads must either move off RAC or redesign HA for RDS, or target EC2 to retain RAC.
52
+ - Do not recommend Oracle Standard Edition when Oracle Partitioning usage is present unless the assessment explicitly assumes Partitioning removal. Oracle Partitioning requires Enterprise Edition.
53
+
54
+ ## Evidence Workflow
55
+
56
+ 1. Confirm assessment scope.
57
+ Determine whether the user wants current-state assessment, AWS target-state planning, current-versus-target comparison, estate-wide review, a workload subset, RDS-only, EC2-only, both RDS and EC2, or an explicit exclusion.
58
+
59
+ 2. Gather Oracle workloads.
60
+ Use the OpsCompass resources workflow to list `databases/oracle` resources in scope.
61
+ Resolve company scope through the resources workflow. Prefer explicit `--company`; when absent, use the approved defaults tool or the selected CLI's `defaults list-defaults` to inspect `<selected-home>/defaults.json`, then include the resolved `--company` in every resources command. Never fall back to another environment's defaults or credentials.
62
+ Use date-bounded inventory for sprawl, recently created databases, or defined assessment periods.
63
+
64
+ 3. Gather Oracle workload evidence.
65
+ For each Oracle workload in scope, collect:
66
+ - `get-latest-configuration`
67
+ - `get-compliance --status open`
68
+ - version and edition
69
+ - feature, option, pack, and parameter usage signals
70
+ - RAC or cluster indicators
71
+ - Partitioning indicators
72
+
73
+ In Oracle latest configuration, inspect:
74
+ - `document.version`
75
+ - `document.edition`
76
+ - `document.productUsageConcerns`
77
+ - `document.parameters` entries where `isConcerning` is `true`
78
+
79
+ Treat non-empty `document.productUsageConcerns` as per-database licensed feature/option usage concern evidence.
80
+ Treat concerning parameters as license-relevant evidence. Example: `CONTROL_MANAGEMENT_PACK_ACCESS=DIAGNOSTIC+TUNING` indicates Diagnostic Pack and Tuning Pack exposure.
81
+
82
+ 4. Gather hosting and compute evidence.
83
+ Correlate Oracle workloads to the infrastructure they run on.
84
+ For VMware and Nutanix, establish:
85
+ - database workload -> VM
86
+ - VM -> host
87
+ - host -> cluster or broader platform context
88
+ - host latest configuration -> CPU/core hardware evidence
89
+
90
+ Use the resources workflow to fetch latest configuration for the infrastructure hosts supporting Oracle workloads, not just the Oracle database resources.
91
+
92
+ 5. Gather entitlement evidence.
93
+ Review available entitlement evidence for:
94
+ - license type and quantity
95
+ - Limited Use constraints
96
+ - assigned versus unassigned position
97
+ - applicability to workloads in scope
98
+ - missing or ambiguous entitlement records
99
+
100
+ Only for illustrative local testing, not for a customer assessment, installed Skill fixture responses can be generated with:
101
+ - `node scripts/fake_entitlements_api.js deployment-details`
102
+ - `node scripts/fake_entitlements_api.js license-usage-map`
103
+ - `node scripts/fake_entitlements_api.js overall-compliance`
104
+
105
+ Those commands read static payloads from `api/entitlement-deployment/`, `api/entitlement-usage/`, and `api/entitlement-compliance/`. They do not query a live entitlement service and must never fill missing customer evidence or establish license ownership/compliance. From the Skills source repository root after building, use `.compiled/skills/licensing/opscompass-oracle-licensing/scripts/fake_entitlements_api.js` instead of the installed `scripts/` path.
106
+
107
+ 6. Analyze current-state exposure.
108
+ Assess:
109
+ - editions and versions in use
110
+ - licensed features, options, packs, and concerning parameters in use
111
+ - RAC usage and whether it affects edition or AWS target feasibility
112
+ - Partitioning usage and whether it requires Enterprise Edition
113
+ - where each workload is hosted today
114
+ - supporting VM, host, and cluster context
115
+ - current core/vCPU or host hardware exposure
116
+ - likely deficiencies, over-allocation, Limited Use conflicts, and unclear cases
117
+
118
+ 7. Analyze AWS target-state options.
119
+ For AWS planning, compare in-scope target options:
120
+ - Amazon RDS for Oracle
121
+ - Oracle on Amazon EC2
122
+ - EC2 Dedicated Hosts when EC2 is in scope
123
+
124
+ For each option, assess:
125
+ - whether it increases or reduces license risk
126
+ - shape, sizing, edition, tenancy, and architecture implications
127
+ - memory-optimized candidate fit
128
+ - whether RAC blocks RDS unless RAC removal or HA redesign is assumed
129
+ - whether RAC retention requires EC2
130
+ - whether Partitioning blocks Standard Edition
131
+ - how target assumptions compare to current host/core exposure and entitlement posture
132
+
133
+ 8. Produce the assessment.
134
+ Summarize findings, risks, evidence, assumptions, gaps, and recommendations.
135
+
136
+ ## Resource Collection Guidance
137
+
138
+ Use the OpsCompass resources workflow to gather evidence. In embedded use, prefer approved resource tools and `opscompass_resources_defaults` with the host's authoritative `OpscompassCliContext` (`cliEntryPoint`, `cliCommand`, `opscompassHome`), which wins over ambient settings. Do not assume `opscompass` exists on global `PATH`, production login, or `~/.opscompass`.
139
+
140
+ Standalone resource helpers `build_resources_command.js` and `list_and_fetch_latest_configs.js` in the Resources Skill accept `--cli opscompass|opscompassdev|opscompassdemo`. These select respectively `~/.opscompass`, `~/.opscompassdev`, and `~/.opscompassdemo`, with production the default. Pure summarizers process supplied JSON and do not accept `--cli`. Keep the selection consistent for defaults, resource queries, command previews, and login/setup guidance. A company name does not select an environment.
141
+
142
+ `OPSCOMPASS_CLI_ENTRYPOINT` may override the standalone executable. A recognized bare command selects its matching identity/home when `--cli` is absent. An arbitrary executable path retains production identity unless paired with explicit `--cli`; its filename does not identify an environment. Explicit `--cli` wins over conflicting recognized ambient commands, while a custom executable path can pair with that explicit identity. Follow the installed Resources Skill's `SKILL.md` for command-builder examples; those helpers belong to that skill, not this one.
143
+
144
+ Use the selected CLI's `defaults list-defaults` only to inspect defaults, for example `opscompassdev defaults list-defaults` for dev; use interactive `data-gathering setup` or direct defaults setters only when the user explicitly asks to configure/change them. Standalone instructions and helpers do not require an embedding host.
145
+
146
+ Builder output and `execute: false` tool results are previews, not retrieved evidence. Obtain actual execution output before claiming a query ran or evidence was collected. Report the real failure if retrieval fails; distinguish authentication from missing scope/defaults, authorization denial, invalid arguments, and service/network errors. Recommend the selected environment's login only when authentication evidence supports it, never automatically for every query failure.
147
+
148
+ Prefer:
149
+ - Oracle resource inventory for workload discovery
150
+ - Oracle `get-latest-configuration` for version, edition, configuration, product usage concerns, and concerning parameters
151
+ - Oracle `get-compliance --status open` for license compliance findings
152
+ - VMware, Nutanix, AWS, Azure, GCP, and Oracle Cloud infrastructure evidence for current-state hosting and compute context when available
153
+ - infrastructure host `get-latest-configuration` for hardware/core evidence
154
+ - date-bounded `resources list` for sprawl or defined assessment periods
155
+
156
+ For Oracle on VMware or Nutanix, workload-to-infrastructure correlation is mandatory evidence for strong conclusions. If the chain cannot be established, say the Oracle licensing conclusion is partial.
157
+
158
+ ## Output Rules
159
+
160
+ Lead with licensing risk and business-impacting recommendations, not raw inventory.
161
+
162
+ Structure the final answer in this order when possible:
163
+
164
+ 1. Assessment summary
165
+ 2. Key findings
166
+ 3. Oracle workloads in scope
167
+ 4. Hosting and compute context
168
+ 5. Entitlement comparison
169
+ 6. Current-state deficiencies or risks
170
+ 7. AWS target-state findings
171
+ 8. AWS optimization recommendations
172
+ 9. Evidence gaps and assumptions
173
+
174
+ For each major conclusion, indicate whether it is:
175
+ - directly established from evidence
176
+ - inferred from strong supporting signals
177
+ - partial because key evidence is missing
178
+
179
+ Prioritize findings in this order:
180
+ - likely Oracle licensing deficiencies
181
+ - Limited Use conflicts
182
+ - feature, option, pack, or parameter usage that may expand license exposure
183
+ - RAC constraints on Standard Edition and RDS feasibility
184
+ - Partitioning constraints on Standard Edition
185
+ - sprawl or excessive footprint
186
+ - hosting or compute risks that affect licensing
187
+ - missing host hardware/core evidence
188
+ - AWS shape, tenancy, and architecture choices that improve or worsen licensing efficiency
189
+ - evidence gaps that block a definitive conclusion
190
+
191
+ When the assessment is incomplete, explicitly name missing evidence, such as:
192
+ - entitlement records
193
+ - VM-to-host mapping
194
+ - host hardware/core evidence
195
+ - AWS target-state sizing assumptions
196
+ - RDS shape and architecture assumptions, if RDS is in scope
197
+ - EC2 shape, tenancy, Dedicated Host, and architecture assumptions, if EC2 is in scope
198
+
199
+ ## Example Requests
200
+
201
+ - "/ola"
202
+ - "/ola assess these Oracle databases for licensing risk"
203
+ - "Do an OLA for this environment."
204
+ - "Optimize my Oracle licensing for AWS."
205
+ - "Optimize my Oracle licensing for Amazon RDS."
206
+ - "Compare RDS and EC2 for my Oracle migration."
207
+ - "I am migrating Oracle from Nutanix to AWS. Give me an OLA."
208
+ - "I am considering Oracle on EC2 Dedicated Hosts. Assess whether that is license-efficient."
209
+ - "Compare current Oracle core exposure to the planned AWS environment."
210
+ - "Develop an AWS Oracle license plan and identify deficiencies."
211
+ - "Produce an Oracle licensing report with findings and recommendations."
@@ -0,0 +1,189 @@
1
+ [
2
+ {
3
+ "Product": "Oracle Active Data Guard",
4
+ "Metric": "Processor",
5
+ "Limitation": "Full Use",
6
+ "Limited To": "",
7
+ "Licensed": 0,
8
+ "Used": 16,
9
+ "Available": 0,
10
+ "Potential risk": "$0.00",
11
+ "Comments": "(GoldenGate)"
12
+ },
13
+ {
14
+ "Product": "Oracle Advanced Compression",
15
+ "Metric": "Named User Plus",
16
+ "Limitation": "Limited Use",
17
+ "Limited To": "Test / Dev",
18
+ "Licensed": 400,
19
+ "Used": 0,
20
+ "Available": 400,
21
+ "Potential risk": "$0.00",
22
+ "Comments": ""
23
+ },
24
+ {
25
+ "Product": "Oracle Advanced Compression",
26
+ "Metric": "Processor",
27
+ "Limitation": "Full Use",
28
+ "Limited To": "",
29
+ "Licensed": 16,
30
+ "Used": 16,
31
+ "Available": 0,
32
+ "Potential risk": "$0.00",
33
+ "Comments": ""
34
+ },
35
+ {
36
+ "Product": "Oracle Advanced Security",
37
+ "Metric": "Processor",
38
+ "Limitation": "Full Use",
39
+ "Limited To": "",
40
+ "Licensed": 16,
41
+ "Used": 32,
42
+ "Available": -16,
43
+ "Potential risk": "$292,800.00",
44
+ "Comments": ""
45
+ },
46
+ {
47
+ "Product": "Oracle Advanced Security",
48
+ "Metric": "Named User Plus",
49
+ "Limitation": "Limited Use",
50
+ "Limited To": "Test / Dev",
51
+ "Licensed": 400,
52
+ "Used": 400,
53
+ "Available": 0,
54
+ "Potential risk": "$0.00",
55
+ "Comments": ""
56
+ },
57
+ {
58
+ "Product": "Oracle Database Enterprise Edition",
59
+ "Metric": "Named User Plus",
60
+ "Limitation": "Limited Use",
61
+ "Limited To": "Test / Dev",
62
+ "Licensed": 400,
63
+ "Used": 400,
64
+ "Available": 0,
65
+ "Potential risk": "$0.00",
66
+ "Comments": ""
67
+ },
68
+ {
69
+ "Product": "Oracle Database Enterprise Edition",
70
+ "Metric": "Processor",
71
+ "Limitation": "Full Use",
72
+ "Limited To": "",
73
+ "Licensed": 16,
74
+ "Used": 32,
75
+ "Available": -16,
76
+ "Potential risk": "$927,200.00",
77
+ "Comments": ""
78
+ },
79
+ {
80
+ "Product": "Oracle Database Vault",
81
+ "Metric": "Processor",
82
+ "Limitation": "Full Use",
83
+ "Limited To": "",
84
+ "Licensed": 16,
85
+ "Used": 32,
86
+ "Available": -16,
87
+ "Potential risk": "$224,480.00",
88
+ "Comments": ""
89
+ },
90
+ {
91
+ "Product": "Oracle Database Vault",
92
+ "Metric": "Named User Plus",
93
+ "Limitation": "Limited Use",
94
+ "Limited To": "Test / Dev",
95
+ "Licensed": 400,
96
+ "Used": 400,
97
+ "Available": 0,
98
+ "Potential risk": "$0.00",
99
+ "Comments": ""
100
+ },
101
+ {
102
+ "Product": "Oracle Diagnostics Pack",
103
+ "Metric": "Named User Plus",
104
+ "Limitation": "Limited Use",
105
+ "Limited To": "Test / Dev",
106
+ "Licensed": 400,
107
+ "Used": 400,
108
+ "Available": 0,
109
+ "Potential risk": "$0.00",
110
+ "Comments": ""
111
+ },
112
+ {
113
+ "Product": "Oracle Diagnostics Pack",
114
+ "Metric": "Processor",
115
+ "Limitation": "Full Use",
116
+ "Limited To": "",
117
+ "Licensed": 16,
118
+ "Used": 16,
119
+ "Available": 0,
120
+ "Potential risk": "$0.00",
121
+ "Comments": ""
122
+ },
123
+ {
124
+ "Product": "Oracle GoldenGate",
125
+ "Metric": "Named User Plus",
126
+ "Limitation": "Limited Use",
127
+ "Limited To": "Test / Dev",
128
+ "Licensed": 400,
129
+ "Used": 400,
130
+ "Available": 0,
131
+ "Potential risk": "$0.00",
132
+ "Comments": ""
133
+ },
134
+ {
135
+ "Product": "Oracle GoldenGate",
136
+ "Metric": "Processor",
137
+ "Limitation": "Full Use",
138
+ "Limited To": "",
139
+ "Licensed": 16,
140
+ "Used": 16,
141
+ "Available": 0,
142
+ "Potential risk": "$0.00",
143
+ "Comments": ""
144
+ },
145
+ {
146
+ "Product": "Oracle Partitioning",
147
+ "Metric": "Processor",
148
+ "Limitation": "Full Use",
149
+ "Limited To": "",
150
+ "Licensed": 16,
151
+ "Used": 16,
152
+ "Available": 0,
153
+ "Potential risk": "$0.00",
154
+ "Comments": ""
155
+ },
156
+ {
157
+ "Product": "Oracle Partitioning",
158
+ "Metric": "Named User Plus",
159
+ "Limitation": "Limited Use",
160
+ "Limited To": "Test / Dev",
161
+ "Licensed": 400,
162
+ "Used": 400,
163
+ "Available": 0,
164
+ "Potential risk": "$0.00",
165
+ "Comments": ""
166
+ },
167
+ {
168
+ "Product": "Oracle Real Application Clusters",
169
+ "Metric": "Named User Plus",
170
+ "Limitation": "Limited Use",
171
+ "Limited To": "Test / Dev",
172
+ "Licensed": 400,
173
+ "Used": 400,
174
+ "Available": 0,
175
+ "Potential risk": "$0.00",
176
+ "Comments": ""
177
+ },
178
+ {
179
+ "Product": "Oracle Real Application Clusters",
180
+ "Metric": "Processor",
181
+ "Limitation": "Full Use",
182
+ "Limited To": "",
183
+ "Licensed": 16,
184
+ "Used": 32,
185
+ "Available": -16,
186
+ "Potential risk": "$448,960.00",
187
+ "Comments": ""
188
+ }
189
+ ]
@@ -0,0 +1,26 @@
1
+ [
2
+ {"Server":"NTX3-HOST06-DC3","VM":"NTX-APPLICATIONPROD-LX02","Instance":"TRKP1","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"3/5/25"},
3
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-INTERFACEDEV-LX01","Instance":"INVD1","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"4/11/25"},
4
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-ARRAYDEV-LX01","Instance":"INVQ2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"3/14/25"},
5
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-CAPACITORDEV-LX01","Instance":"DWHS01","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"4/11/25"},
6
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-MONITORDEV-LX01","Instance":"HISTDR2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"5/3/18"},
7
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-ALARMDEV-LX02","Instance":"INVT2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"4/9/25"},
8
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-CARDDEV-LX01","Instance":"MEND2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"1/1/25"},
9
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-DRIVERDEV-LX01","Instance":"HISTQA","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"2/26/25"},
10
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-CIRCUITDEV-LX01","Instance":"REPD1","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"2/24/25"},
11
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-BANDWIDTHDEV-LX01","Instance":"RMANCP1","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"3/3/25"},
12
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-MONITORDEV-LX01","Instance":"TRK2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"2/13/25"},
13
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-ALARMDEV-LX02","Instance":"INVT1","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"4/9/25"},
14
+ {"Server":"NTX5-HOST01-DC1","VM":"NTX-MONITORDEV-LX01","Instance":"INVT2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"4/9/25"},
15
+ {"Server":"NTX5-HOST02-DC1","VM":"NTX-APPLICATIONDEV-LX02","Instance":"DWHS02","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"4/11/25"},
16
+ {"Server":"NTX5-HOST02-DC1","VM":"NTX-PROGRAMDEV-LX02","Instance":"INVD2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"4/11/25"},
17
+ {"Server":"NTX5-HOST02-DC1","VM":"NTX-FIREWALLDEV-LX02","Instance":"HISTDR1","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"5/3/18"},
18
+ {"Server":"NTX5-HOST02-DC1","VM":"NTX-CAPACITORDEV-LX02","Instance":"INVQ1","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"3/14/25"},
19
+ {"Server":"NTX5-HOST02-DC1","VM":"NTX-ALARMDEV-LX02","Instance":"MEND1","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"1/1/25"},
20
+ {"Server":"NTX5-HOST02-DC1","VM":"NTX-APPLICATIONDEV-LX02","Instance":"RMANCP2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"3/3/25"},
21
+ {"Server":"NTX5-HOST02-DC1","VM":"NTX-CARDDEV-LX02","Instance":"TRK1","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"2/13/25"},
22
+ {"Server":"NTX5-HOST02-DC1","VM":"NTX-ARRAYDEV-LX02","Instance":"REPD2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"2/23/25"},
23
+ {"Server":"NTX6-HOST01-DC1","VM":"NTX-FIREWALLPROD-LX01","Instance":"INVP2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"2/2/13"},
24
+ {"Server":"NTX6-HOST01-DC1","VM":"NTX-PIXELPROD-LX01","Instance":"TRKP2","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"3/5/25"},
25
+ {"Server":"NTX6-HOST02-DC1","VM":"NTX-SYSTEMPROD-LX02","Instance":"INVP1","Edition":"Enterprise Edition","Version":"19.0.0.0.0","DB Created":"2/2/13"}
26
+ ]