From oracle-ai-data-platform-workbench-spark-connectors
Read and write Azure Data Lake Storage Gen2 (`abfss://`) from an AIDP notebook. Use when the user mentions ADLS, Azure Data Lake, abfss, or wants to ingest from a multi-cloud Azure source. Auth is OAuth client-credentials (Service Principal client_id + secret + tenant).
How this skill is triggered — by the user, by Claude, or both
Slash command
/oracle-ai-data-platform-workbench-spark-connectors:aidp-azure-adlsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read or write `abfss://<container>@<storage_account>.dfs.core.windows.net/...` paths from AIDP Spark using a Service Principal.
aidp-azure-adls — Azure ADLS Gen2 via OAuth client-credentialsRead or write abfss://<container>@<storage_account>.dfs.core.windows.net/... paths from AIDP Spark using a Service Principal.
aidp-object-storage.aidp-aws-s3.Configure the Spark Hadoop connector with Service-Principal credentials. Do this once per session/job:
import os
storage_account = os.environ["ADLS_STORAGE_ACCOUNT"] # account name only, no .dfs...
client_id = os.environ["ADLS_CLIENT_ID"] # SP application (client) id
client_secret = os.environ["ADLS_CLIENT_SECRET"] # SP secret value
tenant = os.environ["ADLS_TENANT"] # Azure AD tenant id (GUID)
base = f"fs.azure.account"
host = f"{storage_account}.dfs.core.windows.net"
spark.conf.set(f"{base}.auth.type.{host}", "OAuth")
spark.conf.set(f"{base}.oauth.provider.type.{host}", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
spark.conf.set(f"{base}.oauth2.client.id.{host}", client_id)
spark.conf.set(f"{base}.oauth2.client.secret.{host}", client_secret)
spark.conf.set(f"{base}.oauth2.client.endpoint.{host}", f"https://login.microsoftonline.com/{tenant}/oauth2/token")
container = os.environ["ADLS_CONTAINER"]
data_file = os.environ["ADLS_DATA_FILE"] # e.g. "data/2025/january/orders.csv"
df = (spark.read
.format("csv")
.option("header", True)
.load(f"abfss://{container}@{storage_account}.dfs.core.windows.net/{data_file}"))
df.show()
(df.write
.mode("overwrite")
.format("delta")
.saveAsTable("default.default.data_from_adls"))
Storage Blob Data Contributor (or Reader for read-only) on the container or the account.abfss:// to work (ADLS Gen2 = HNS-on storage account)..env file gitignored, or from OCI Vault via oracle_ai_data_platform_connectors.auth.secrets.get(name).login.microsoftonline.com/<tenant>/oauth2/token is the v1 endpoint and is what the ClientCredsTokenProvider expects. Don't use the v2 endpoint here.abfss:// not abfs:// — always use the TLS variant.npx claudepluginhub ahmedawan-oracle/claude-code-plugins --plugin oracle-ai-data-platform-workbench-spark-connectorsProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.