diff --git a/baton_capabilities.json b/baton_capabilities.json index a67929cb..2c089d0a 100644 --- a/baton_capabilities.json +++ b/baton_capabilities.json @@ -1,74 +1,74 @@ { - "@type": "type.googleapis.com/c1.connector.v2.ConnectorCapabilities", - "resourceTypeCapabilities": [ + "@type": "type.googleapis.com/c1.connector.v2.ConnectorCapabilities", + "resourceTypeCapabilities": [ { - "resourceType": { - "id": "org", - "displayName": "Org" + "resourceType": { + "id": "org", + "displayName": "Org" }, - "capabilities": [ + "capabilities": [ "CAPABILITY_SYNC" ], - "permissions": {} + "permissions": {} }, { - "resourceType": { - "id": "project", - "displayName": "Project", - "traits": [ + "resourceType": { + "id": "project", + "displayName": "Project", + "traits": [ "TRAIT_GROUP" ] }, - "capabilities": [ + "capabilities": [ "CAPABILITY_SYNC" ], - "permissions": {} + "permissions": {} }, { - "resourceType": { - "id": "role", - "displayName": "Role", - "traits": [ + "resourceType": { + "id": "role", + "displayName": "Role", + "traits": [ "TRAIT_ROLE" ] }, - "capabilities": [ + "capabilities": [ "CAPABILITY_SYNC" ], - "permissions": {} + "permissions": {} }, { - "resourceType": { - "id": "team", - "displayName": "Team", - "traits": [ + "resourceType": { + "id": "team", + "displayName": "Team", + "traits": [ "TRAIT_GROUP" ] }, - "capabilities": [ + "capabilities": [ "CAPABILITY_SYNC", "CAPABILITY_PROVISION" ], - "permissions": {} + "permissions": {} }, { - "resourceType": { - "id": "user", - "displayName": "User", - "traits": [ + "resourceType": { + "id": "user", + "displayName": "User", + "traits": [ "TRAIT_USER" ] }, - "capabilities": [ + "capabilities": [ "CAPABILITY_SYNC" ], - "permissions": {} + "permissions": {} } ], - "connectorCapabilities": [ + "connectorCapabilities": [ "CAPABILITY_PROVISION", "CAPABILITY_SYNC", "CAPABILITY_TICKETING" ], - "credentialDetails": {} + "credentialDetails": {} } \ No newline at end of file diff --git a/pkg/connector/team.go b/pkg/connector/team.go index 266e49f0..eff199cd 100644 --- a/pkg/connector/team.go +++ b/pkg/connector/team.go @@ -14,7 +14,6 @@ import ( rs "github.com/conductorone/baton-sdk/pkg/types/resource" "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" "go.uber.org/zap" - "google.golang.org/protobuf/types/known/structpb" ) var ( @@ -177,15 +176,20 @@ func (o *teamResourceType) Revoke(ctx context.Context, grant *v2.Grant) (annotat return nil, fmt.Errorf("baton-linear: only users can have team membership revoked") } - metadata := &structpb.Struct{} + grantMetadata := &v2.GrantMetadata{} annos := annotations.Annotations(grant.Annotations) - ok, err := annos.Pick(metadata) + ok, err := annos.Pick(grantMetadata) if err != nil { return nil, err } if !ok { - return nil, fmt.Errorf("baton-linear: annotation does not exist: %w", err) + return nil, fmt.Errorf("baton-linear: grant metadata annotation does not exist") + } + + metadata := grantMetadata.GetMetadata() + if metadata == nil { + return nil, fmt.Errorf("baton-linear: grant metadata is nil") } membershipId := metadata.Fields["membership_id"].GetStringValue()