# oracle-samples/oracle-functions-samples architecture

> Architecture diagram of the GitHub repository oracle-samples/oracle-functions-samples, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/oracle-samples/oracle-functions-samples
- Repository: https://github.com/oracle-samples/oracle-functions-samples

## Overview

This repository is a catalog of independent Oracle Functions examples, not one application with a shared runtime. Its main user workflow is to choose a documented use case, inspect the corresponding sample, and adapt that function to call OCI or another service. The graph groups the major example families and shows only relationships the README explicitly documents; source excerpts were unavailable, so internal function behavior and undocumented call paths are omitted.

Main entry points: [`samples/oci-logs-datadog`](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-logs-datadog) (Log forwarding), [`samples/oci-ons-compute-shape-increase-python`](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-ons-compute-shape-increase-python) (Alarm-driven resize), [`samples/trace-functions-with-apm`](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/trace-functions-with-apm) (APM tracing), [`samples/oci-notification-syniverse`](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-notification-syniverse) (Log SMS alerts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_oci["OCI operations"]
  node_compute["Compute samples"]
  node_compute_control["Compute control"]
  node_compartments["Compartment listing"]
  node_object_storage["Object Storage samples"]
  node_database["Autonomous DB samples"]
  node_vault["Vault samples"]
  node_notifications["Notification samples"]
end

subgraph group_api["API and security"]
  node_gateway["API Gateway samples"]
  node_authorizer["IDCS authorizer"]
  node_api_key["API key validation"]
  node_basic_auth["Basic auth"]
end

subgraph group_connectors["Connector workflows"]
  node_logging["Log forwarding"]
  node_sms_logs["Log SMS alerts"]
  node_stream_csv["JSON to CSV"]
  node_stream_parquet["JSON to Parquet"]
end

subgraph group_operations["Observability and events"]
  node_metrics["Metric export"]
  node_apm["APM tracing"]
  node_events["Cloud Event display"]
  node_alarm_compute["Alarm-driven resize"]
end

node_developer(("Sample user"))
node_service_connector["Service Connector Hub"]
node_logging_service["OCI Logging"]
node_streams["OCI Streams"]
node_datadog["Datadog"]
node_monitoring["OCI Monitoring"]
node_apm_service["OCI APM"]
node_oci_functions["Oracle Functions"]

node_developer -->|"explores"| node_compute
node_developer -->|"explores"| node_compute_control
node_developer -->|"explores"| node_compartments
node_developer -->|"explores"| node_object_storage
node_developer -->|"explores"| node_database
node_developer -->|"explores"| node_vault
node_developer -->|"explores"| node_notifications
node_developer -->|"explores"| node_gateway
node_developer -->|"explores"| node_authorizer
node_developer -->|"explores"| node_api_key
node_developer -->|"explores"| node_basic_auth
node_developer -->|"explores"| node_logging
node_developer -->|"explores"| node_sms_logs
node_developer -->|"explores"| node_stream_csv
node_developer -->|"explores"| node_stream_parquet
node_developer -->|"explores"| node_metrics
node_developer -->|"explores"| node_apm
node_developer -->|"explores"| node_events
node_developer -->|"explores"| node_alarm_compute
node_logging_service -->|"provides source"| node_service_connector
node_service_connector -->|"routes to function"| node_logging
node_logging -->|"forwards logs"| node_datadog
node_service_connector -->|"routes to function"| node_sms_logs
node_service_connector -->|"routes task"| node_stream_csv
node_service_connector -->|"routes task"| node_stream_parquet
node_streams -->|"provides stream"| node_service_connector
node_service_connector -->|"targets stream"| node_streams
node_monitoring -->|"exports metrics"| node_metrics
node_apm -->|"traces function"| node_apm_service
node_monitoring -->|"raises alert"| node_alarm_compute
node_oci_functions -.->|"invoked by notification"| node_alarm_compute

click node_compute "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-list-instances-python"
click node_compute_control "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-compute-control-python"
click node_compartments "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-list-compartments-python"
click node_object_storage "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-objectstorage-list-objects-python"
click node_database "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-adb-ords-runsql-python"
click node_vault "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-vault-get-secret-python"
click node_notifications "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-ons-publish-python"
click node_gateway "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-apigw-display-httprequest-info-python"
click node_authorizer "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-apigw-authorizer-idcs-java"
click node_api_key "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-apigw-apikey-validation-python"
click node_basic_auth "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-apigw-idcs-auth-basic"
click node_logging "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-logs-datadog"
click node_sms_logs "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-notification-syniverse"
click node_stream_csv "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-serviceconnector-streaming-json-to-csv-python"
click node_stream_parquet "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-serviceconnector-streaming-json-to-parquet-python"
click node_metrics "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-monitoring-metric-export-python"
click node_apm "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/trace-functions-with-apm"
click node_events "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-event-display-python"
click node_alarm_compute "https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-ons-compute-shape-increase-python"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_compute,node_compute_control,node_compartments,node_object_storage,node_database,node_vault,node_notifications,node_developer toneBlue
class node_gateway,node_authorizer,node_api_key,node_basic_auth toneAmber
class node_logging,node_sms_logs,node_stream_csv,node_stream_parquet toneMint
class node_metrics,node_apm,node_events,node_alarm_compute toneRose
class node_service_connector,node_logging_service,node_streams,node_datadog,node_monitoring,node_apm_service,node_oci_functions toneIndigo
```

## Components

### OCI operations

- [Compute samples](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-list-instances-python): `samples/oci-list-instances-python`
- [Compute control](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-compute-control-python): `samples/oci-compute-control-python`
- [Compartment listing](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-list-compartments-python): `samples/oci-list-compartments-python`
- [Object Storage samples](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-objectstorage-list-objects-python): `samples/oci-objectstorage-list-objects-python`
- [Autonomous DB samples](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-adb-ords-runsql-python): `samples/oci-adb-ords-runsql-python`
- [Vault samples](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-vault-get-secret-python): `samples/oci-vault-get-secret-python`
- [Notification samples](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-ons-publish-python): `samples/oci-ons-publish-python`

### API and security

- [API Gateway samples](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-apigw-display-httprequest-info-python): `samples/oci-apigw-display-httprequest-info-python`
- [IDCS authorizer](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-apigw-authorizer-idcs-java): `samples/oci-apigw-authorizer-idcs-java`
- [API key validation](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-apigw-apikey-validation-python): `samples/oci-apigw-apikey-validation-python`
- [Basic auth](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-apigw-idcs-auth-basic): `samples/oci-apigw-idcs-auth-basic`

### Connector workflows

- [Log forwarding](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-logs-datadog): `samples/oci-logs-datadog`
- [Log SMS alerts](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-notification-syniverse): `samples/oci-notification-syniverse`
- [JSON to CSV](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-serviceconnector-streaming-json-to-csv-python): `samples/oci-serviceconnector-streaming-json-to-csv-python`
- [JSON to Parquet](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-serviceconnector-streaming-json-to-parquet-python): `samples/oci-serviceconnector-streaming-json-to-parquet-python`

### Observability and events

- [Metric export](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-monitoring-metric-export-python): `samples/oci-monitoring-metric-export-python`
- [APM tracing](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/trace-functions-with-apm): `samples/trace-functions-with-apm`
- [Cloud Event display](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-event-display-python): `samples/oci-event-display-python`
- [Alarm-driven resize](https://github.com/oracle-samples/oracle-functions-samples/tree/master/samples/oci-ons-compute-shape-increase-python): `samples/oci-ons-compute-shape-increase-python`

### Other components

- **Sample user**
- **Service Connector Hub**
- **OCI Logging**
- **OCI Streams**
- **Datadog**
- **OCI Monitoring**
- **OCI APM**
- **Oracle Functions**

## Connections

- Sample user → Compute samples: explores (evidence: `README.md`)
- Sample user → Compute control: explores (evidence: `README.md`)
- Sample user → Compartment listing: explores (evidence: `README.md`)
- Sample user → Object Storage samples: explores (evidence: `README.md`)
- Sample user → Autonomous DB samples: explores (evidence: `README.md`)
- Sample user → Vault samples: explores (evidence: `README.md`)
- Sample user → Notification samples: explores (evidence: `README.md`)
- Sample user → API Gateway samples: explores (evidence: `README.md`)
- Sample user → IDCS authorizer: explores (evidence: `README.md`)
- Sample user → API key validation: explores (evidence: `README.md`)
- Sample user → Basic auth: explores (evidence: `README.md`)
- Sample user → Log forwarding: explores (evidence: `README.md`)
- Sample user → Log SMS alerts: explores (evidence: `README.md`)
- Sample user → JSON to CSV: explores (evidence: `README.md`)
- Sample user → JSON to Parquet: explores (evidence: `README.md`)
- Sample user → Metric export: explores (evidence: `README.md`)
- Sample user → APM tracing: explores (evidence: `README.md`)
- Sample user → Cloud Event display: explores (evidence: `README.md`)
- Sample user → Alarm-driven resize: explores (evidence: `README.md`)
- OCI Logging → Service Connector Hub: provides source (evidence: `README.md`)
- Service Connector Hub → Log forwarding: routes to function (evidence: `README.md`)
- Log forwarding → Datadog: forwards logs (evidence: `README.md`)
- Service Connector Hub → Log SMS alerts: routes to function (evidence: `README.md`)
- Service Connector Hub → JSON to CSV: routes task (evidence: `README.md`)
- Service Connector Hub → JSON to Parquet: routes task (evidence: `README.md`)
- OCI Streams → Service Connector Hub: provides stream (evidence: `README.md`)
- Service Connector Hub → OCI Streams: targets stream (evidence: `README.md`)
- OCI Monitoring → Metric export: exports metrics (evidence: `README.md`)
- APM tracing → OCI APM: traces function (evidence: `README.md`)
- OCI Monitoring → Alarm-driven resize: raises alert (evidence: `README.md`)
- Oracle Functions → Alarm-driven resize: invoked by notification (evidence: `README.md`)
