Proto commits in instill-ai/pipeline-backend

These 44 commits are when the Protocol Buffers files have changed:

Commit:9cd910c
Author:Ping-Lin Chang
Committer:Ping-Lin Chang

refactor(api): adopt flattened namespace prefixes from protobufs (#1153) **Because** - The protobufs repository has been updated to remove redundant "Namespace" prefixes from Pipeline and Model APIs - The global `ListPipelines` has been renamed to `ListPublicPipelines` to distinguish from namespace-scoped listing - Model trigger API naming has been aligned with Pipeline convention (`TriggerModel` for latest, `TriggerModelVersion` for specific) - Artifact API field names have been updated to follow AIP-122 (`knowledge_base_id` → `knowledge_base`) **This commit** - Updates all Pipeline handler, service, and repository code to use new API names: - `ListNamespacePipelines` → `ListPipelines` - `CreateNamespacePipeline` → `CreatePipeline` - `GetNamespacePipeline` → `GetPipeline` - `UpdateNamespacePipeline` → `UpdatePipeline` - `DeleteNamespacePipeline` → `DeletePipeline` - `ValidateNamespacePipeline` → `ValidatePipeline` - `RenameNamespacePipeline` → `RenamePipeline` - `CloneNamespacePipeline` → `ClonePipeline` - `TriggerNamespacePipeline` → `TriggerPipeline` - `TriggerAsyncNamespacePipeline` → `TriggerAsyncPipeline` - And all related Pipeline Release APIs - Renames global listing endpoint: - `ListPipelines` (global) → `ListPublicPipelines` in handler, service, and repository layers - Updates instillmodel component to use new Model API names: - `TriggerNamespaceModel` → `TriggerModel` - `TriggerNamespaceModelRequest` → `TriggerModelRequest` - `TriggerNamespaceModelResponse` → `TriggerModelResponse` - Updates instillartifact component to use new field names: - `KnowledgeBaseId` → `KnowledgeBase` - Updates integration tests to use new RPC method names - Regenerates mock files to reflect interface changes - Updates protogen-go dependency via local replace directive

The documentation is generated from this commit.

Commit:dc79b3d
Author:Ping-Lin Chang
Committer:Ping-Lin Chang

refactor(api): update tests for AIP-compliant APIs and add private service tests (#1151) **Because** - Integration tests were using deprecated `*UserPipeline` APIs that have been removed in favor of `*NamespacePipeline` APIs - The `LookUpPipeline` endpoint was incorrectly exposed in public service despite being marked as INTERNAL - Private service APIs (LookUpPipelineAdmin, ListPipelinesAdmin) lacked integration test coverage - Several tests were skipped due to outdated API method references - The `PipelineRun.name` field was returning empty namespace/pipeline values **This commit** - Updates all gRPC and REST integration tests to use new Namespace APIs (`CreateNamespacePipeline`, `TriggerNamespacePipeline`, etc.) - Removes public `LookUpPipeline` handler since it was removed from the public protobuf service - Adds private service integration tests (`grpc-pipeline-private.js`) with proper service-to-service authentication using `Instill-User-Uid` and `Instill-Requester-Uid` headers - Fixes `PipelineRun` to properly populate the `Pipeline` field before conversion, ensuring correct resource name generation - Updates `renamePipelineRequiredFields` to include `new_pipeline_id` per AIP-136 - Adds database query helpers (`getNamespaceUidFromId`, `getPipelineUidFromId`) for internal UID lookups - Renames JWT auth test files to Basic Auth to reflect CE edition authentication - Updates integration test protobufs to match current API definitions

Commit:f694e8a
Author:Ping-Lin Chang
Committer:GitHub

refactor(pipeline): implement AIP-compliant resource naming with hash-based IDs (#1149) **Because** - The codebase previously used user-provided IDs for resources, which could lead to naming conflicts and didn't follow AIP (API Improvement Proposals) standards - The `*User*` and `*Organization*` scoped handlers were deprecated in favor of unified `*Namespace*` scoped handlers - The usage reporting module is now handled at a different layer (EE) - Integration test proto structure needed to align with the flattened protobuf package structure **This commit** - **Database migrations (000043-000050)**: Adds `slug` columns to pipeline, pipeline_release, secret, and connection tables, then migrates from user-provided IDs to server-generated hash-based canonical IDs (e.g., `pip-xxxx`, `sec-xxxx`, `con-xxxx`) - **Handler cleanup**: Removes deprecated `*User*` and `*Organization*` scoped handlers (~525 lines removed): - `CheckName`, `RenameUserPipelineRelease`, `RenameOrganizationPipelineRelease` - `RestoreUserPipelineRelease`, `RestoreOrganizationPipelineRelease` - Related helper functions and interfaces - **Removes usage reporting module** (`pkg/usage/usage.go`): 270 lines removed, functionality moved to EE layer - **Integration test restructuring**: - Flattens proto directory structure (`pipeline/pipeline/v1beta/` → `pipeline/v1beta/`) - Consolidates shared proto files (`google/`, `mgmt/`, `protoc-gen-openapiv2/`) - Removes obsolete test files for deprecated private endpoints - **Component updates**: Updates artifact and model component clients to use new protobuf package paths

Commit:427598d
Author:Chang, Hui-Tang
Committer:GitHub

chore(proto): adopt latest `protogen-go` package (#1024) Because - we've updated the enum for user plan. This commit - adopts latest `protogen-go` package. - removed unused mock files.

Commit:1e1a966
Author:Chang, Hui-Tang
Committer:Chang, Hui-Tang

chore(all): update domain name in docs (#992) This commit - updates domain name in docs

Commit:5def33e
Author:Chang, Hui-Tang
Committer:GitHub

chore(all): update domain name in docs (#992) This commit - updates domain name in docs

Commit:8ba570a
Author:Chang, Hui-Tang
Committer:GitHub

feat(all): rename VDP to pipeline (#963) This commit - renames `vdp` to `pipeline`

Commit:86bffe8
Author:Juan Vallés
Committer:GitHub

feat(connection): add lookup connection endpoint (#888) Because - Agent configurations will store the UIDs of the connections needed to use in agent tools (UIDs are used to avoid breaking the config if the ID is updated by the namespace). This commit - Adds a private endpoint to fetch a connection by UID. Part of INS-6933, branch name is wrong.

Commit:9fcf01c
Author:Chang, Hui-Tang
Committer:GitHub

chore(mod): update to the latest protogen-go package and proto files (#887) This commit - updates to the latest protogen-go package and proto files

Commit:937bd01
Author:Juan Vallés
Committer:GitHub

feat(trigger): accept connection references in the pipeline trigger data (#883) Because - When a pipeline recipe references a connection, that connection ID will be fetched from the requester's namespace. - This forces requesters to create connections in order to trigger pipelines from other namesapces. This commit - Adds a `connectionReferences` field in the pipeline trigger data, which allows clients to override the references in the recipe with per-batch references. - Adds a private endpoint to fetch connections by UID, needed in the 1-minute to impact project.

Commit:6ae8efd
Author:Juan Vallés
Committer:GitHub

chore(integration): remove deprecated `schemas` field (#877) Because - The `schemas` field was added under the wrong assumption that the integration schemas would differ across connection methods (OAuth vs key-value). - After deprecating this field and providing an alternative `setupSchema` field, all the clients for the deprecated one have been removed. Therefore, removing the deprecated field won't break any client. This commit - Removes the deprecated `schemas` field.

Commit:9e0e575
Author:Juan Vallés
Committer:GitHub

chore(integration): read namespace ID from creation / update request, not object (#783) Because - Namespace ID in connection requests was being read from the nested object, which caused conflicts in the OpenAPI definitions. This commit - Reads the namespace ID as an explicit parameter. This field in the Connection object becomes, then, an `OUTPUT_ONLY` field.

Commit:e2e9237
Author:Juan Vallés
Committer:GitHub

feat(integration): add identity to OAuth connections (#699) Because - When a user authorizes an Instill component using OAuth, we want to display the identity that they used. This commit - Adds identity information to OAuth connections. - Makes OAuth method the only accepted one for connections if it's supported.

Commit:a48275b
Author:Juan Vallés
Committer:GitHub

feat(integration): support OAuth connections (#661) Because - Some components support OAuth 2.0 integrations to fill their setup. This commit - Allows `METHOD_OAUTH` in connections and OAuth-specific fields. - Returns single setup for integrations.

Commit:21fcbdb
Author:Juan Vallés
Committer:GitHub

feat(integration): reference connections in pipelines (#638) Because - After creating a connection, users need to be able to reference it from a pipeline. This commit - (fix) Makes connection ID mutable - Resolves connection references on pipelines (e.g. `setup: ${connection.my-cohere-conn}`).

Commit:b784553
Author:Juan Vallés
Committer:GitHub

feat(integration): add create, update, delete connection endpoints (#629) Because - Users need to create connections before referencing them in pipelines. Also, they need to be able to modify and delete them. This commit - Add connection creation endpoint.

Commit:9be491b
Author:Juan Vallés
Committer:GitHub

feat: add endpoints to read integrations (#611) Because - Users need to know the available integrations in order to create or modify one. This commit - Adds the integration Read enptints (get, list). Information is extracted from the component definition whose ID matches the integration ID.

Commit:2b273b4
Author:Chang, Hui-Tang
Committer:GitHub

feat: use explicit `user_id` and `organization_id` in mgmt request (#559) Because - Previously, we used a general `name` parameter in request parameters, e.g., `{name=users/*}`, which was ambiguous. This commit - Uses explicit `user_id` and `organization_id` in request parameters. - Removes unnecessary environment variables.

Commit:41bed7f
Author:Chang, Hui-Tang
Committer:GitHub

feat: allow user to store recipe in YAML format (#524) Because - We are going to support pipeline recipes in YAML format. We will return the recipe in YAML format in the response and also allow users to create/update recipes using YAML format. - Previously, we converted the component definition ID in the recipe into UID when writing it to the database. Now, since we will directly store this raw recipe in the database, we won't do this conversion anymore. In the future, we'll migrate recipes if the component definition ID changes. This commit - Exposes the `raw_recipe` field in the pipeline and pipeline_release endpoints, the original `recipe` in JSON format is still workable. - Removes the component definition ID to UID conversion when reading/writing the recipe from/to the database. Note - Regarding the component definition ID to UID conversion, database migration is needed. We'll open another PR to address this soon. - We only added the most basic integration test for the YAML recipe in this PR. More comprehensive tests will be added after we implement the event trigger pipeline.

Commit:de0c2bc
Author:Chang, Hui-Tang
Committer:GitHub

feat: implement new recipe format (#498) Because - We revamped our pipeline recipe format to make it more extensible for different kinds of trigger methods in the future. - We are going to retire the categorization of `connector` and `operator`, unifying all of them into `component`. This commit - Implements the new recipe format. - Refactors the component memory structure. - Adopts the unified component interface. Note - The recipe migration script is not implemented yet; we will add it in the next PR.

Commit:420b8c6
Author:Chang, Hui-Tang
Committer:GitHub

feat: revamp recipe and retire connector resource (#453) Because - We designed a new recipe format to make the recipe self-explanatory by merging the connector resource configuration into the pipeline recipe. We also introduced a new secret management system to allow users to manage their own secrets. This commit - feat: revamp recipe and retire connector - feat: refactor trigger workflow and implement secret override - feat: add component UsageHandler - feat: remove Airbyte connectors - refactor: refactor and clean some unused code

Commit:e6899f2
Author:Chang, Hui-Tang
Committer:GitHub

chore: optimize connector existence check when creating or updating a pipeline (#416) Because - There are many potential bugs in the connector existence check when creating or updating a pipeline. This commit - Optimizes the connector existence check when creating or updating a pipeline.

Commit:1a676ff
Author:Chang, Hui-Tang
Committer:GitHub

feat: revamp recipe format and implement iterator (#405) Because: - The original recipe message utilized `structpb` to encapsulate every configuration, creating an implicit structure that posed a challenge for users or developers to comprehend the data structure. Given the distinct structures associated with various components, it is essential to explicitly expose them to the user. - A special iterator component for array data iteration is desired. This commit: - Revamped the recipe with new Protobuf messages: `StartComponent`, `EndComponent`, `OperatorComponent`, `ConnectorComponent`, and `IteratorComponent`. - Implements iterator. Note: - This is a breaking change in the interface, requiring an update to the implementation on the client-side.

Commit:80aa6a5
Author:Juan Vallés
Committer:GitHub

feat: rename blockchain connector type to application (#397) Because - https://github.com/instill-ai/protobufs/pull/274 removed the Blockchain connector type and modified the connector and operator list view type. - Once https://github.com/instill-ai/connector/pull/131 is merged, `numbers` connector will become an application connector. This commit - Updates the auto-generated proto Go code, adapting the backend to the changes: - Modifies the Blockchain enum value in the database via a migration. - Modifies type conversions to take Application connector into account. - Removes deprecated lookup methods. - Updates `VIEW_XXX` enum values.

Commit:c54e8a0
Author:Chang, Hui-Tang
Committer:GitHub

test: use owner profile from mgmtdb as expected result (#395) Because - We will run pipeline integration tests together with other backend tests. The owner profile data might be changed by other backends. We need to use the real data from the database as the expected result instead of using the hardcoded one. This commit - Uses owner profile from mgmtdb as the expected result

Commit:d071461
Author:Chang, Hui-Tang
Committer:GitHub

feat: use `mgmtPB.Owner` to embed the owner information in response (#392) Because - Originally, we used `owner_name` and `owner` (`structpb`) to embed owner information for Console. However, `owner` is a `structpb`, and it is not well-formatted. Since we already have dedicated messages for `User` and `Organization`, we should utilize these messages. This commit - Utilizes `mgmtPB.Owner` to embed the owner information in pipeline and connector response when `view != VIEW_BASIC`. - Updates Connector and Operator packages.

Commit:afc3d21
Author:Chang, Hui-Tang
Committer:GitHub

feat: remove controller-vdp (#354) Because - We used controller-vdp to monitor the connector and pipeline real state, but it required extra computational resources and did not yield benefits. Therefore, we have decided to retire the controller-vdp. This commit - Remove controller-vdp related code

Commit:c98406b
Author:Chang, Hui-Tang
Committer:GitHub

chore(deps): upgrade protobufs and endpoint version to beta (#312) Because - we are going to release beta version of VDP This commit - upgrade protobufs and endpoint version to beta

Commit:78180cf
Author:Chang, Hui-Tang
Committer:GitHub

refactor(all): merge connector-backend endpoints into pipeline-backend (#296) Because - we're going to retire connector-backend This commit - retire connector-backend endpoints and move these endpoints to pipeline-backend

Commit:ddbf829
Author:Chang, Hui-Tang
Committer:GitHub

chore: refactor datamodel and proto conversion (#220) Because - the boundary of handler and service is not clear. This commit - refactor datamodel and proto conversion

Commit:019abf6
Author:Chang, Hui-Tang
Committer:GitHub

chore: implement namespace (#219) Because - We would like to make the resources be public or shared to other users. The current structure can not support it since the api endpoint was designed for the users' own resources. This commit - refactor endpoints to support namespace - refactor code structure to have a better boundary among handler, service, repository

Commit:4a7d9ba
Author:Chang, Hui-Tang
Committer:GitHub

chore: adopt `connector-resources` endpoints (#215) Because - In proto, `Connector` has been renamed to `ConnectorResource` This commit - adopt `connector-resources/` endpoints

Commit:f49a77e
Author:Chang, Hui-Tang
Committer:GitHub

chore: refactor pipeline backend to support component-oriented architecture (#213) Because - we design a new component-oriented architecture to improve vdp This commit - refactor connector-backend for component oriented architecture - support start-operator and end-operator - support form-data input

Commit:4cd36c4
Author:Chang, Hui-Tang
Committer:GitHub

chore: adopt new `CONNECTOR_TYPE_DATA` (#209) Because - the connector-backend has merge connector-source/destination into connector-data This commit - adopt new `CONNECTOR_TYPE_DATA` changes

Commit:b711aef
Author:Chang, Hui-Tang
Committer:GitHub

chore: add test cases for unfinished-recipe pipeline (#204) Because - need test cases for unfinished-recipe pipeline This commit - add test cases for unfinished-recipe pipeline to test activate/deactivate - remove unused code

Commit:a151f2c
Author:Chang, Hui-Tang
Committer:GitHub

chore: rename trigger endpoint and implement GetOperation for TriggerAsync (#200) Because - simplify the naming of `trigger` endpoint - implement a function for user to get the result of async pipeline This commit - rename `trigger` endpoint - implement `GetOperation` endpoint for `TriggerAsync`

Commit:e4216cb
Author:Chang, Hui-Tang

chore: update protobuf and protogen-go

Commit:425d4dc
Author:Chang, Hui-Tang
Committer:GitHub

chore: adopt new pipeline req/resp format (#181) Because - we redefined the pipeline trigger input and output format - the connector endpoints have been refactored - the model-backend has been decoupled from vdp This commit - adopt the new PipelineDataPayload format in TriggerPipeline request/response - adopt the latest connector endpoints - refactor the codebase - support redis as temp storage for both temporal input and output - Note: the triggering function is not working now.

Commit:d1d4bf0
Author:HR Wu
Committer:GitHub

chore: fix pre-commit warnings (#170) Because - fix pre-commit warnings This commit - fix pre-commit warnings

Commit:40c2720
Author:Chang, Hui-Tang
Committer:GitHub

chore: separate trigger endpoint to triggerSync and triggerAsync and adopt temporal (#162) Because - need to separate trigger endpoint to triggerSync and triggerAsync - need to guarantee the execution of async job This commit - separate trigger endpoint to triggerSync and triggerAsync - use temporal to handle async trigger job

Commit:1a95e99
Author:Chang, Hui-Tang
Committer:GitHub

chore: adopt new recipe format (#161) Because - need to provide ability to support complex DAG pipeline in the future - need to include pipeline's resource details in response to reduce front-end api call round trips This commit - refactor the recipe format - add recipe format migration - include resource details in recipe to reduce frontend api calls - refactor code structure.

Commit:e4880f3
Author:Chang, Hui-Tang
Committer:GitHub

chore: change owner from using id to uuid (#138) Because - The user ID can be changed now (in Instill Cloud), so using the owner ID is not reliable This commit - refactor owner of a pipeline to use the UUID, not the ID - update protogen-go dependency

Commit:b1272eb
Author:phelan
Committer:GitHub

chore: update pipelines recipe with model (#131) Because - we want to remove the concept of model instance This commit - update the recipe with models instead of model_instances fix INS-336

Commit:14bc109
Author:phelan
Committer:GitHub

feat: adopt private/public apis for pipeline (#111) Because - support private APIs used by other services internally This commit - add private APIs - add gRPC test cases Resolves INS-126 Co-authored-by: Ping-Lin Chang <ping-lin.chang@instill.tech>