Skip to content
Back to skills

Source 07f5d038f2ce07cd75f40b71

ASecurity

Read from Oracle Siebel CRM into a Spark DataFrame in an AIDP notebook via the AIDP `aidataplatform` Spark format handler. Use when the user mentions Siebel, Siebel CRM, S_CONTACT, S_ORG_EXT, or has a Siebel host/port. Auth is host/port + database name + user/password. Read-only.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentspythongobashsqlgitdatabase

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add gutsofpratik/OpenClaude-Skills --skill source-07f5d038f2ce07cd75f40b71 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Source 07f5d038f2ce07cd75f40b71?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Source 07f5d038f2ce07cd75f40b71
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gutsofpratik-source-07f5d038f2ce07cd75f40b71/badge)](https://www.skillsdirectory.com/skills/gutsofpratik-source-07f5d038f2ce07cd75f40b71)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: aidp-siebel
description: Read from Oracle Siebel CRM into a Spark DataFrame in an AIDP notebook via the AIDP `aidataplatform` Spark format handler. Use when the user mentions Siebel, Siebel CRM, S_CONTACT, S_ORG_EXT, or has a Siebel host/port. Auth is host/port + database name + user/password. Read-only.
allowed-tools: Read, Write, Edit, Bash
---

# `aidp-siebel` — Oracle Siebel CRM via AIDP `aidataplatform`

## When to use
- User wants to ingest Siebel CRM data (contacts, accounts, opportunities, service requests) into a Spark DataFrame from an AIDP notebook.
- User mentions: "Siebel", "Siebel CRM", "S_CONTACT", "S_ORG_EXT", "S_OPTY", Siebel base tables.

## When NOT to use
- For Oracle Autonomous DB family (ALH/ADW/ATP) → [`aidp-alh`](../aidp-alh/SKILL.md).
- For Oracle PeopleSoft → [`aidp-peoplesoft`](../aidp-peoplesoft/SKILL.md).
- For generic Oracle DB → [`aidp-oracle-db`](../aidp-oracle-db/SKILL.md).

## Prerequisites in the AIDP notebook
1. Helpers on `sys.path` (run `aidp-connectors-bootstrap` first).
2. Env vars / OCI Vault secrets:
   - `SIEBEL_HOST`, `SIEBEL_PORT` (typically `1521`)
   - `SIEBEL_DATABASE_NAME` (Oracle SID / service)
   - `SIEBEL_USER`, `SIEBEL_PASSWORD`
   - `SIEBEL_SCHEMA` (typically `SIEBEL`)
   - `SIEBEL_TABLE` (a Siebel base table, e.g. `S_CONTACT`, `S_ORG_EXT`)

## Read

```python
import os
from oracle_ai_data_platform_connectors.aidataplatform import (
    AIDP_FORMAT, aidataplatform_options,
)

opts = aidataplatform_options(
    type="ORACLE_SIEBEL",
    host=os.environ["SIEBEL_HOST"],
    port=int(os.environ["SIEBEL_PORT"]),
    database_name=os.environ["SIEBEL_DATABASE_NAME"],
    user=os.environ["SIEBEL_USER"],
    password=os.environ["SIEBEL_PASSWORD"],
    schema=os.environ.get("SIEBEL_SCHEMA", "SIEBEL"),
    table=os.environ["SIEBEL_TABLE"],
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)
```

## Pushdown SQL

Use `pushdown.sql` to run a complete source query — push joins, filters, and aggregations to the Siebel DB instead of pulling whole base tables into Spark.

```python
opts = aidataplatform_options(
    type="ORACLE_SIEBEL",
    host=os.environ["SIEBEL_HOST"],
    port=int(os.environ["SIEBEL_PORT"]),
    database_name=os.environ["SIEBEL_DATABASE_NAME"],
    user=os.environ["SIEBEL_USER"],
    password=os.environ["SIEBEL_PASSWORD"],
    extra={
        "pushdown.sql": (
            "SELECT C.ROW_ID, C.LAST_NAME, C.FST_NAME, O.NAME AS ACCOUNT "
            "FROM SIEBEL.S_CONTACT C "
            "JOIN SIEBEL.S_ORG_EXT O ON C.PR_HELD_POSTN_ID = O.ROW_ID "
            "WHERE C.STATUS_CD = 'Active'"
        ),
    },
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)
```

## Gotchas
- **Connector is read-only.** Siebel data should be written back through Siebel's EAI/REST channels, not Spark. The connector is intentionally one-way.
- **Underlying Oracle DB.** Siebel runs on Oracle DB; network reachability rules from `aidp-oracle-db` apply.
- **`SIEBEL` schema owner.** Standard Siebel install owns all base tables (`S_*`) under the `SIEBEL` schema. The connector user needs `SELECT` privs.
- **Soft-delete columns.** Siebel uses `ROW_ID` keys and `LAST_UPD` for incremental ingest. Filter with `WHERE LAST_UPD > :since` via `pushdown.sql` for delta loads.
- **Audit columns.** `CREATED`, `CREATED_BY`, `LAST_UPD`, `LAST_UPD_BY` are populated by triggers on every row — useful for change tracking.

## References
- Helper: [scripts/oracle_ai_data_platform_connectors/aidataplatform.py](../../scripts/oracle_ai_data_platform_connectors/aidataplatform.py)
- Official sample: [oracle-samples/oracle-aidp-samples → `data-engineering/ingestion/Read_Only_Ingestion_Connectors/Oracle_Siebel.ipynb`](https://github.com/oracle-samples/oracle-aidp-samples/blob/main/data-engineering/ingestion/Read_Only_Ingestion_Connectors/Oracle_Siebel.ipynb)

Files in this skill

  • PROVENANCE.json297 B
  • SKILL.md3.8 KB
  • UPSTREAM-LICENSE.txt1.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.