Skip to content

feat: add Functions API and related services - #15

Merged
gabrielvfonseca merged 14 commits into
mainfrom
codex/remove-sandbox-endpoints
Oct 9, 2026
Merged

gabrielvfonseca merged 14 commits into
mainfrom
codex/remove-sandbox-endpoints

Conversation

@gabrielvfonseca

@gabrielvfonseca gabrielvfonseca commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

This PR adds the Functions API client with model classes, resource clients, and tests. It also adds new service enum constants (INVOCATIONS, PROVIDERS, WEBHOOK_ENDPOINTS) and updates retry configuration for Functions service.

Summary by CodeRabbit

  • New Features
    • Added a typed Functions API client for creating, listing, updating, and deleting functions, managing versions and deployments, and invoking or tracking executions.
    • Added support for Node.js 20, Node.js 22, and Python 3.11 runtimes.
    • Added a Functions API guide with a runnable example.
  • Bug Fixes
    • Functions GET requests now use a default of three retry attempts; explicitly configured retry settings are respected.
  • Documentation
    • Updated API documentation to direct readers to the Functions API guide.

@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

frontal-labs is on CodeRabbit Free, which includes PR summaries. Ask your admin to upgrade for code reviews.

  • Ask an admin to upgrade

Open in CodeRabbit

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Free
  • Run ID: d14b68dc-5545-44e6-9675-dac348fba720

📥 Commits

Reviewing files that changed from the base of the PR and between 98d186e and 66d28be.


📒 Files selected for processing (55)
  • CHANGELOG.md
  • README.md
  • core/src/main/java/dev/frontal/sdk/api/ApiClient.java
  • core/src/main/java/dev/frontal/sdk/config/ClientConfig.java
  • core/src/main/java/dev/frontal/sdk/models/ApiService.java
  • docs/ENTERPRISE_READINESS.md
  • docs/README.md
  • docs/api/README.md
  • docs/api/agents.md
  • docs/api/ai.md
  • docs/api/audit.md
  • docs/api/auth.md
  • docs/api/billing.md
  • docs/api/blob.md
  • docs/api/connection-tests.md
  • docs/api/connectors.md
  • docs/api/data.md
  • docs/api/events.md
  • docs/api/functions.md
  • docs/api/governance.md
  • docs/api/invocations.md
  • docs/api/lineage.md
  • docs/api/methods-as-code.md
  • docs/api/observability.md
  • docs/api/ontology.md
  • docs/api/pipelines.md
  • docs/api/providers.md
  • docs/api/react.md
  • docs/api/schedules.md
  • docs/api/webhook-endpoints.md
  • docs/api/webhooks.md
  • docs/api/workflows.md
  • examples/src/test/java/dev/frontal/examples/FunctionsQuickstartTest.java
  • sdk/src/main/java/dev/frontal/sdk/api/Frontal.java
  • sdk/src/test/java/dev/frontal/sdk/FunctionsClientTest.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionAsyncInvocation.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionDefinition.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionDeploymentStatus.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionExecution.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionExecutionListResponse.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionInvocationInput.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionInvocationResult.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionListResponse.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionPagination.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionPermission.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionResource.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionRuntime.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionStatus.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionVersion.java
  • services/src/main/java/dev/frontal/sdk/models/FunctionVersionListResponse.java
  • services/src/main/java/dev/frontal/sdk/resources/FunctionsClient.java
  • services/src/main/java/dev/frontal/sdk/resources/FunctionsDeploymentsClient.java
  • services/src/main/java/dev/frontal/sdk/resources/FunctionsEndpoints.java
  • services/src/main/java/dev/frontal/sdk/resources/FunctionsExecutionsClient.java
  • services/src/main/java/dev/frontal/sdk/resources/FunctionsVersionsClient.java

💤 Files with no reviewable changes (23)
  • docs/api/pipelines.md
  • docs/api/methods-as-code.md
  • docs/api/audit.md
  • docs/api/events.md
  • docs/api/data.md
  • docs/api/connectors.md
  • docs/api/providers.md
  • docs/api/ai.md
  • docs/api/blob.md
  • docs/api/lineage.md
  • docs/ENTERPRISE_READINESS.md
  • docs/api/workflows.md
  • docs/api/auth.md
  • docs/api/governance.md
  • docs/api/schedules.md
  • docs/api/observability.md
  • docs/api/webhook-endpoints.md
  • docs/api/connection-tests.md
  • docs/api/billing.md
  • docs/api/webhooks.md
  • docs/api/agents.md
  • docs/api/react.md
  • docs/api/invocations.md

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.



📝 Walkthrough

Walkthrough

The PR adds a typed Java Functions API client for function CRUD, versions, deployments, and executions. It adds JSON models, service-specific GET retry defaults, tests, and documentation. It also removes existing API reference pages and the enterprise-readiness page.

Changes

Functions API client

Layer / File(s) Summary
Functions service and retry configuration
core/src/main/java/dev/frontal/sdk/models/ApiService.java, core/src/main/java/dev/frontal/sdk/config/ClientConfig.java, core/src/main/java/dev/frontal/sdk/api/ApiClient.java
The service enum adds FUNCTIONS. GET requests use the retry limit for the endpoint’s service. Functions GET requests default to three retries unless the caller explicitly configures a retry count.
Function request and response models
services/src/main/java/dev/frontal/sdk/models/Function*.java
New JSON-mapped models cover function definitions and resources, versions, deployments, invocations, executions, permissions, runtimes, statuses, and pagination. Some constructors validate required values and defensively copy collections.
Function, version, deployment, and execution operations
services/src/main/java/dev/frontal/sdk/resources/Functions*.java
The endpoint registry and clients add function CRUD, version listing and publication, deployment and status operations, invocation, execution retrieval and listing, and cancellation.
SDK access, tests, and Functions guide
sdk/src/main/java/dev/frontal/sdk/api/Frontal.java, sdk/src/test/java/dev/frontal/sdk/FunctionsClientTest.java, examples/src/test/java/dev/frontal/examples/FunctionsQuickstartTest.java, docs/api/functions.md, README.md, docs/README.md, docs/api/README.md, CHANGELOG.md
Frontal exposes functions(). Tests cover requests, serialization, retries, and a create-and-invoke example. The guide and project documentation describe the Functions API and note that its routes are absent from the current contract snapshot.

Existing API reference removals

Layer / File(s) Summary
Remove existing reference pages
docs/ENTERPRISE_READINESS.md, docs/api/*.md
The enterprise-readiness page and existing API references for services other than Functions are removed.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Frontal
  participant FunctionsClient
  participant ApiClient
  participant FunctionsAPI
  Frontal->>FunctionsClient: Access functions()
  FunctionsClient->>ApiClient: Send Functions endpoint request
  ApiClient->>FunctionsAPI: Dispatch HTTP request
  FunctionsAPI-->>ApiClient: Return response
  ApiClient-->>FunctionsClient: Return typed response
Loading

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@gabrielvfonseca gabrielvfonseca self-assigned this Oct 9, 2026
@gabrielvfonseca
gabrielvfonseca merged commit 1980583 into main Oct 9, 2026
9 of 10 checks passed
@sonarqubecloud

sonarqubecloud Bot commented Oct 9, 2026

Copy link
Copy Markdown

❌ The last analysis has failed.

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant