1 Commits

Author SHA1 Message Date
sku-refresh-bot
32319b67d7 chore(pricing): monthly SKU catalog refresh (2026-04-24)
Automated refresh from Oracle public pricing API.
See workflow artifact 'sku-refresh-logs' for the diff.
2026-04-24 15:53:41 +00:00
5 changed files with 25 additions and 152 deletions

View File

@@ -100,28 +100,20 @@ jobs:
| sed "s#https://#https://sku-refresh-bot:${GITEA_TOKEN}@#")
git push "$REMOTE" "$BRANCH"
# Open PR via Gitea API (fail-fast + log response)
# Open PR via Gitea API
OWNER=$(echo "$GITEA_REPO" | cut -d/ -f1)
REPO=$(echo "$GITEA_REPO" | cut -d/ -f2)
PAYLOAD=$(jq -n \
--arg title "chore(pricing): monthly SKU refresh ${DATE}" \
--arg head "$BRANCH" \
--arg base "main" \
--arg body "$(printf 'Automated refresh — see run artifact for full refresh/discover logs.\n\n```\n%s\n```' \
"$(tail -40 /tmp/refresh.log)")" \
'{title:$title, head:$head, base:$base, body:$body}')
echo "Creating PR ${BRANCH} -> main ..."
RESPONSE=$(curl -sS -w "\nHTTP_STATUS=%{http_code}\n" -X POST \
curl -sS -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"${GITEA_SERVER}/api/v1/repos/${OWNER}/${REPO}/pulls" \
-d "$PAYLOAD")
echo "$RESPONSE"
STATUS=$(echo "$RESPONSE" | grep -oE 'HTTP_STATUS=[0-9]+' | cut -d= -f2)
if [ "$STATUS" != "201" ]; then
echo "::error::PR creation failed with HTTP $STATUS"
exit 1
fi
-d "$(jq -n \
--arg title "chore(pricing): monthly SKU refresh ${DATE}" \
--arg head "$BRANCH" \
--arg base "main" \
--arg body "$(printf 'Automated refresh — [refresh log artifact](../../actions).\n\n```\n%s\n```' \
"$(tail -40 /tmp/refresh.log)")" \
'{title:$title, head:$head, base:$base, body:$body}')"
- name: Open issue for new SKUs
if: steps.discover.outputs.new_count != '0'
@@ -138,22 +130,14 @@ jobs:
BODY=$(printf '## %s new SKUs detected in Oracle API\n\n**Detected:** %s\n\nThese SKUs are present in the Oracle public pricing API but not yet in `kb/pricing/oci-sku-catalog.yaml`. Filter: serviceCategory values already represented in our catalog (so only relevant families show up).\n\n### Full listing\n\n```\n%s\n```\n\n### Next step\n\nReview and add relevant entries to `kb/pricing/oci-sku-catalog.yaml` under the appropriate category block. After merging, prices will be picked up automatically on the next monthly refresh.\n' \
"$NEW_COUNT" "$DATE" "$(cat /tmp/discover.log)")
PAYLOAD=$(jq -n \
--arg title "SKU catalog: ${NEW_COUNT} new SKUs to review (${DATE})" \
--arg body "$BODY" \
'{title:$title, body:$body}')
echo "Creating issue: ${NEW_COUNT} new SKUs..."
RESPONSE=$(curl -sS -w "\nHTTP_STATUS=%{http_code}\n" -X POST \
curl -sS -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"${GITEA_SERVER}/api/v1/repos/${OWNER}/${REPO}/issues" \
-d "$PAYLOAD")
echo "$RESPONSE"
STATUS=$(echo "$RESPONSE" | grep -oE 'HTTP_STATUS=[0-9]+' | cut -d= -f2)
if [ "$STATUS" != "201" ]; then
echo "::error::Issue creation failed with HTTP $STATUS"
exit 1
fi
-d "$(jq -n \
--arg title "SKU catalog: ${NEW_COUNT} new SKUs to review (${DATE})" \
--arg body "$BODY" \
'{title:$title, body:$body, labels:["automation","sku-catalog"]}')"
- name: Summary
if: always()

View File

@@ -27,7 +27,7 @@
# =============================================================================
---
last_verified: "2026-04-24"
last_verified: "2026-03-14"
maintained_by: "Field Architecture Team"
versions:
@@ -338,69 +338,6 @@ features:
adb_s:
"23ai": { status: "GA_CAVEAT", notes: "--resource-pool-summary works on CLI 3.73+. --autonomous-database-maintenance-window has JSON serialization bug on CLI 3.73.1 AND 3.75.0. Must use Console for maintenance window." }
- name: "Lakehouse External Table Cache / Lake Cache"
category: "operations"
matrix:
adb_s:
"23ai":
status: "UNTESTED"
notes: "Officially documented for Lakehouse workload. Caches external-table data locally to accelerate repeat reads. Field team has not yet validated production behavior."
contributor:
name: "Codex"
team: "Field Architecture"
date: "2026-04-24"
confidence: "doc-validated"
"26ai":
status: "UNTESTED"
notes: "Documented for AI Lakehouse workload. Expect benefit on repeated reads over external data; validate eviction behavior and cache warmup in benchmarks."
contributor:
name: "Codex"
team: "Field Architecture"
date: "2026-04-24"
confidence: "doc-validated"
- name: "Apache Iceberg External Tables"
category: "operations"
matrix:
adb_s:
"23ai":
status: "LIMITED"
notes: "Official docs show support with important caveats: no partitioned Iceberg tables, no credential vending, no query-time time travel, and some snapshot/schema changes require recreating the external table."
contributor:
name: "Codex"
team: "Field Architecture"
date: "2026-04-24"
confidence: "doc-validated"
"26ai":
status: "LIMITED"
notes: "Same documented limitations as 23ai unless field testing proves otherwise. Treat as fit-for-purpose, not transparent parity with native Iceberg engines."
contributor:
name: "Codex"
team: "Field Architecture"
date: "2026-04-24"
confidence: "doc-validated"
- name: "TP / TPURGENT Service Names on Lakehouse"
category: "operations"
matrix:
adb_s:
"23ai":
status: "UNTESTED"
notes: "Need field confirmation by exact release/build. Use docs/release notes before promising availability on older estates."
contributor:
name: "Codex"
team: "Field Architecture"
date: "2026-04-24"
confidence: "doc-validated"
"26ai":
status: "GA_CAVEAT"
notes: "Officially released for Lakehouse workload. Useful to explain mixed-workload support, but benchmark service behavior under real concurrency before positioning as OLTP-equivalent."
contributor:
name: "Codex"
team: "Field Architecture"
date: "2026-04-24"
confidence: "doc-validated"
# =============================================================================
# HOW TO ADD A NEW FEATURE
# =============================================================================

View File

@@ -1,5 +1,5 @@
---
last_verified: 2026-04-24
last_verified: 2026-03-14
description: |
Real-world limits that differ from official documentation or are not
well-documented. These come from actual deployment experience.
@@ -75,15 +75,3 @@ limits:
request limit increase via support ticket. Increases are usually
approved within 1-2 business days.
recommendation: "Request limit increases early in project planning"
- service: ADB-S Lakehouse
limit: "Apache Iceberg interoperability"
documented: "Lakehouse can query Iceberg tables"
real_world: |
The capability is useful, but not transparent parity with native
Iceberg engines. Current documented constraints include: no partitioned
Iceberg tables, no credential vending, no query-time time travel, and
some schema/snapshot changes requiring external table recreation.
Architects should treat this as selective interoperability, not a
drop-in replacement for every Iceberg pattern already in use.
recommendation: "Validate exact Iceberg table design and metadata workflow before positioning ADB Lakehouse as a universal Iceberg endpoint"

View File

@@ -1,4 +1,4 @@
last_verified: '2026-03-27'
last_verified: '2026-04-24'
source: Oracle OCI Price List + internal BOM reference v1.73
description: 'OCI SKU catalog for BOM generation. ~160 SKUs across 14+ categories. Prices are approximate and for estimation
only. Always verify against https://www.oracle.com/cloud/pricing/
@@ -563,7 +563,7 @@ categories:
- sku: B95714
product: Oracle Autonomous AI Transaction Processing - Dedicated - ECPU
metric: ECPU Per Hour
list_price_usd: 0.336
list_price_usd: 0.0807
default_hours_units: 730
billing_type: hourly
- sku: B95715
@@ -1301,12 +1301,6 @@ categories:
list_price_usd: 0.015
default_hours_units: 730
billing_type: hourly
# OCI Data Science and Data Flow do not have dedicated SKUs in the Oracle
# public pricing API — they are billed via the underlying Compute + Block/Object
# Storage consumed by notebook sessions, model-deployment endpoints, and Spark
# runs. The entries below are placeholder estimates (VM.Standard3.Flex OCPU rate)
# so BOMs can include them as line items; always confirm against the customer's
# actual shape + usage before quoting.
- sku: EST-DS-NOTEBOOK
product: '[ESTIMATE] OCI Data Science - Notebook Session (billed via underlying VM.Standard compute OCPU)'
metric: OCPU Per Hour

View File

@@ -1,8 +1,8 @@
# OCI Service: Autonomous Database Serverless (ADB-S)
# Last verified: 2026-04
# Last verified: 2026-03
service:
name: "Autonomous AI Database Serverless (ADB-S)"
name: "Autonomous Database Serverless (ADB-S)"
id: adb_serverless
category: database
color: "#AA643B"
@@ -35,17 +35,13 @@ limits:
variants:
- id: adb_s
name: "Autonomous AI Database Serverless (ADB-S)"
name: "Autonomous Database Serverless (ADB-S)"
description: "Shared Exadata infrastructure, fully managed, auto-scaling"
workload_types:
- "Autonomous AI Transaction Processing (TP) - app-facing OLTP and mixed workloads on local database-managed data"
- "Autonomous AI Lakehouse - SQL across database-local plus external/open-format data (Object Storage, Iceberg, federated catalogs)"
- "Autonomous JSON Database - document-centric JSON development pattern"
- "APEX Application Development - low-code application development"
workload_notes:
- "Since October 2025 Oracle documentation uses Autonomous AI Database naming for workload types."
- "Lakehouse is not a separate database engine; it is a workload specialization with an explicit external-data plane."
- "Lakehouse now also exposes TP and TPURGENT predefined service names, so do not assume warehouse-only service semantics."
- ATP (Transaction Processing / Mixed)
- ADW (Data Warehouse / Analytics)
- AJD (JSON Document Store)
- APEX (Low-code application development)
- id: adb_d
name: "Autonomous Database on Dedicated Exadata (ADB-D)"
@@ -63,7 +59,6 @@ when_to_use:
- "JSON document workloads (AJD)"
- "Rapid APEX application development"
- "Data warehouse / analytics with auto-scaling"
- "Need Lakehouse-style SQL over Object Storage / Apache Iceberg without copying all data into the database"
when_not_to_use:
- "Non-Oracle database engines (use MySQL HeatWave, PostgreSQL, NoSQL)"
@@ -71,7 +66,6 @@ when_not_to_use:
- "Need RAC but not ADB-D budget → use ExaCS or DBCS VM"
- "Workloads requiring specific DB patches not yet in ADB"
- "Extreme IOPS requirements > what Exadata provides"
- "Choose TP workload if the dominant path is OLTP write-heavy access on database-local data and external/open-table access is peripheral"
sizing:
adb_s:
@@ -120,22 +114,6 @@ gotchas:
severity: LOW
description: "ADB now defaults to Oracle 26ai in all commercial regions. 19c is legacy. Verify customer version requirements."
- id: adb_lakehouse_not_separate_engine
severity: MEDIUM
description: "Lakehouse is a workload specialization inside ADB Serverless, not a separate database engine or separate managed service."
- id: adb_lakehouse_external_data_plane
severity: MEDIUM
description: "Lakehouse value appears when Object Storage / Iceberg / open-format access is structural. If the dataset is fully local and OLTP-dominant, TP is usually the cleaner fit."
- id: adb_lakehouse_iceberg_limits
severity: HIGH
description: "Current Iceberg support has material caveats: no partitioned Iceberg tables, no credential vending, no query-time time travel, and some snapshot/schema changes require recreating the external table."
- id: adb_lakehouse_tp_services
severity: LOW
description: "Lakehouse now supports TP and TPURGENT predefined service names. Do not model it as ADW-style query-only connectivity."
implied_dependencies:
- service: service_gateway
reason: "Required for automated backups to Object Storage"
@@ -166,16 +144,8 @@ references:
documentation: "https://docs.oracle.com/en/cloud/paas/autonomous-database/"
pricing: "https://www.oracle.com/autonomous-database/pricing/"
sizing_guide: "https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/autonomous-database-cpu.html"
workload_types: "https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/about-autonomous-database-workloads.html"
lakehouse: "https://docs.oracle.com/en-us/iaas/autonomous-database-serverless/doc/lake-lakehouse.html"
iceberg: "https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/query-external-data-apache-iceberg.html"
lakehouse_tp_services: "https://docs.oracle.com/iaas/releasenotes/autonomous-database-serverless/2025-10-tp-tpurgent-predefined-db-service-names-for-lakehouse-workload.htm"
data_lake_accelerator: "https://docs.oracle.com/iaas/releasenotes/autonomous-database-serverless/2025-11-data-lake-accelerator.htm"
changelog:
- date: "2026-04-24"
contributor: { name: "Codex", team: "Field Architecture" }
change: "Updated workload taxonomy to Autonomous AI naming; added Lakehouse selection guidance, Iceberg caveats, TP/TPURGENT note, and official references"
- date: "2026-03-14"
contributor: { name: "Diego Cabrera", team: "Field Architecture" }
change: "Initial creation with sizing rules, gotchas, competitive notes, HA/DR options"