Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ Code reviews are required for all submissions via GitHub pull requests.
- when adding new inedexes, make sure to update the generated sql migraiton files and make them CREATE INDEX CONCURRENTLY and set -- atlas:txmode none at the top
- after updating protos, make sure to run `buf format -w`
- Please avoid sycophantic commentary like ‘You’re absolutely correct!’ or ‘Brilliant idea!’
- For each file you modify, update the license header to include the current year (2026). For example, if it says 2024, change it to 2024-2026. If there's no license header, create one with the current year.
- For each file you modify, update the license header so the last year is the current year. For example, `Copyright 2023` becomes `Copyright 2023-2026`. If it already ends with the current year, no change needed. If there's no license header, create one with the current year.
- if you add any new dependency to a constructor, remember to run wire ./...
- when creating PR message, keep it high-level, what functionality was added, don't add info about testing, no icons, no info about how the message was generated.
- app/controlplane/api/gen/frontend/google/protobuf/descriptor.ts is a special case that we don't want to upgrade, so if it upgrades, put it back to main
Expand Down
9 changes: 7 additions & 2 deletions app/controlplane/plugins/sdk/v1/fanout.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright 2023 The Chainloop Authors.
// Copyright 2023-2026 The Chainloop Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -138,7 +138,12 @@ type NewParams struct {
func NewFanOut(p *NewParams, opts ...NewOpt) (*FanOutIntegration, error) {
base, err := NewIntegrationBase(
&IntegrationBaseOptions{
p.ID, p.Name, p.Version, p.Description, []string{IntegrationKindFanOut}, p.InputSchema,
ID: p.ID,
Name: p.Name,
Version: p.Version,
Description: p.Description,
Kinds: []string{IntegrationKindFanOut},
Schema: p.InputSchema,
},
)
if err != nil {
Expand Down
10 changes: 9 additions & 1 deletion app/controlplane/plugins/sdk/v1/integrations.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright 2025 The Chainloop Authors.
// Copyright 2025-2026 The Chainloop Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -55,6 +55,8 @@ type IntegrationBase struct {
Description string
// kinds of integration (e.g. "notification", "task-manager", "fanout", etc.)
Kinds []string
// Whether only one registration per organization is allowed
Singleton bool

// Rendered schema definitions
// Generated from the schema definitions using https://github.com/invopop/jsonschema
Expand All @@ -73,6 +75,8 @@ type IntegrationBaseOptions struct {
Description string
Kinds []string
Schema *InputSchema
// Whether only one registration per organization is allowed
Singleton bool
}

// NewIntegrationBase helper to create a new IntegrationBase
Expand Down Expand Up @@ -119,6 +123,7 @@ func NewIntegrationBase(opts *IntegrationBaseOptions) (*IntegrationBase, error)
Version: opts.Version,
Description: opts.Description,
Kinds: opts.Kinds,
Singleton: opts.Singleton,
registrationJSONSchema: registrationJSONSchema,
attachmentJSONSchema: attachmentJSONSchema,
}, nil
Expand All @@ -131,6 +136,7 @@ func (i *IntegrationBase) Describe() *IntegrationInfo {
Version: i.Version,
Description: i.Description,
Kinds: i.Kinds,
Singleton: i.Singleton,
RegistrationJSONSchema: i.registrationJSONSchema,
AttachmentJSONSchema: i.attachmentJSONSchema,
}
Expand All @@ -147,6 +153,8 @@ type IntegrationInfo struct {
Description string
// Kinds of integration (e.g. "notification", "task-manager", "fanout", etc.)
Kinds []string
// Whether only one registration per organization is allowed
Singleton bool
// Schemas in JSON schema format
RegistrationJSONSchema, AttachmentJSONSchema []byte
}
Expand Down
Loading