Documentation
¶
Overview ¶
Package rpc is a gRPC API interface of the Fish node
Index ¶
- type ApplicationService
- func (s *ApplicationService) Create(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceCreateResponse], error)
- func (s *ApplicationService) CreateTask(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceCreateTaskResponse], error)
- func (s *ApplicationService) Deallocate(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceDeallocateResponse], error)
- func (s *ApplicationService) Get(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceGetResponse], error)
- func (s *ApplicationService) GetResource(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceGetResourceResponse], error)
- func (s *ApplicationService) GetState(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceGetStateResponse], error)
- func (s *ApplicationService) GetTask(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceGetTaskResponse], error)
- func (s *ApplicationService) List(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceListResponse], error)
- func (s *ApplicationService) ListResource(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceListResourceResponse], error)
- func (s *ApplicationService) ListState(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceListStateResponse], error)
- func (s *ApplicationService) ListTask(ctx context.Context, ...) (*connect.Response[aquariumv2.ApplicationServiceListTaskResponse], error)
- type AuthService
- func (s *AuthService) GetPermissions(ctx context.Context, ...) (*connect.Response[aquariumv2.AuthServiceGetPermissionsResponse], error)
- func (s *AuthService) Login(ctx context.Context, req *connect.Request[aquariumv2.AuthServiceLoginRequest]) (*connect.Response[aquariumv2.AuthServiceLoginResponse], error)
- func (s *AuthService) ParseJWTToken(tokenString string) (*JWTClaims, error)
- func (s *AuthService) RefreshToken(ctx context.Context, ...) (*connect.Response[aquariumv2.AuthServiceRefreshTokenResponse], error)
- func (s *AuthService) ValidateToken(ctx context.Context, ...) (*connect.Response[aquariumv2.AuthServiceValidateTokenResponse], error)
- type JWTClaims
- type LabelService
- func (s *LabelService) Create(ctx context.Context, ...) (*connect.Response[aquariumv2.LabelServiceCreateResponse], error)
- func (s *LabelService) Get(ctx context.Context, req *connect.Request[aquariumv2.LabelServiceGetRequest]) (*connect.Response[aquariumv2.LabelServiceGetResponse], error)
- func (s *LabelService) List(ctx context.Context, req *connect.Request[aquariumv2.LabelServiceListRequest]) (*connect.Response[aquariumv2.LabelServiceListResponse], error)
- func (s *LabelService) Remove(ctx context.Context, ...) (*connect.Response[aquariumv2.LabelServiceRemoveResponse], error)
- func (s *LabelService) Update(ctx context.Context, ...) (*connect.Response[aquariumv2.LabelServiceUpdateResponse], error)
- type NodeService
- func (s *NodeService) Get(ctx context.Context, req *connect.Request[aquariumv2.NodeServiceGetRequest]) (*connect.Response[aquariumv2.NodeServiceGetResponse], error)
- func (s *NodeService) GetThis(_ context.Context, _ *connect.Request[aquariumv2.NodeServiceGetThisRequest]) (*connect.Response[aquariumv2.NodeServiceGetThisResponse], error)
- func (s *NodeService) List(ctx context.Context, _ *connect.Request[aquariumv2.NodeServiceListRequest]) (*connect.Response[aquariumv2.NodeServiceListResponse], error)
- func (s *NodeService) SetMaintenance(_ context.Context, ...) (*connect.Response[aquariumv2.NodeServiceSetMaintenanceResponse], error)
- type RefreshTokenClaims
- type RoleService
- func (s *RoleService) Create(ctx context.Context, req *connect.Request[aquariumv2.RoleServiceCreateRequest]) (*connect.Response[aquariumv2.RoleServiceCreateResponse], error)
- func (s *RoleService) Get(ctx context.Context, req *connect.Request[aquariumv2.RoleServiceGetRequest]) (*connect.Response[aquariumv2.RoleServiceGetResponse], error)
- func (s *RoleService) List(ctx context.Context, _ *connect.Request[aquariumv2.RoleServiceListRequest]) (*connect.Response[aquariumv2.RoleServiceListResponse], error)
- func (s *RoleService) Remove(ctx context.Context, req *connect.Request[aquariumv2.RoleServiceRemoveRequest]) (*connect.Response[aquariumv2.RoleServiceRemoveResponse], error)
- func (s *RoleService) Update(ctx context.Context, req *connect.Request[aquariumv2.RoleServiceUpdateRequest]) (*connect.Response[aquariumv2.RoleServiceUpdateResponse], error)
- type Server
- type StreamingService
- type SubscriptionPermissionCache
- func (spc *SubscriptionPermissionCache) CleanupStaleEntries(f *fish.Fish)
- func (spc *SubscriptionPermissionCache) GrantAccess(userName string, appUID typesv2.ApplicationUID)
- func (spc *SubscriptionPermissionCache) HasAccess(userName string, appUID typesv2.ApplicationUID) bool
- func (spc *SubscriptionPermissionCache) RevokeAccess(userName string, appUID typesv2.ApplicationUID)
- type UserService
- func (s *UserService) Create(ctx context.Context, req *connect.Request[aquariumv2.UserServiceCreateRequest]) (*connect.Response[aquariumv2.UserServiceCreateResponse], error)
- func (s *UserService) CreateGroup(ctx context.Context, ...) (*connect.Response[aquariumv2.UserServiceCreateGroupResponse], error)
- func (s *UserService) Get(ctx context.Context, req *connect.Request[aquariumv2.UserServiceGetRequest]) (*connect.Response[aquariumv2.UserServiceGetResponse], error)
- func (s *UserService) GetGroup(ctx context.Context, ...) (*connect.Response[aquariumv2.UserServiceGetGroupResponse], error)
- func (*UserService) GetMe(ctx context.Context, _ *connect.Request[aquariumv2.UserServiceGetMeRequest]) (*connect.Response[aquariumv2.UserServiceGetMeResponse], error)
- func (s *UserService) List(ctx context.Context, _ *connect.Request[aquariumv2.UserServiceListRequest]) (*connect.Response[aquariumv2.UserServiceListResponse], error)
- func (s *UserService) ListGroup(ctx context.Context, ...) (*connect.Response[aquariumv2.UserServiceListGroupResponse], error)
- func (s *UserService) Remove(ctx context.Context, req *connect.Request[aquariumv2.UserServiceRemoveRequest]) (*connect.Response[aquariumv2.UserServiceRemoveResponse], error)
- func (s *UserService) RemoveGroup(ctx context.Context, ...) (*connect.Response[aquariumv2.UserServiceRemoveGroupResponse], error)
- func (s *UserService) Update(ctx context.Context, req *connect.Request[aquariumv2.UserServiceUpdateRequest]) (*connect.Response[aquariumv2.UserServiceUpdateResponse], error)
- func (s *UserService) UpdateGroup(ctx context.Context, ...) (*connect.Response[aquariumv2.UserServiceUpdateGroupResponse], error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ApplicationService ¶
type ApplicationService struct {
// contains filtered or unexported fields
}
ApplicationService implements the Application service
func (*ApplicationService) Create ¶
func (s *ApplicationService) Create(ctx context.Context, req *connect.Request[aquariumv2.ApplicationServiceCreateRequest]) (*connect.Response[aquariumv2.ApplicationServiceCreateResponse], error)
Create creates a new application
func (*ApplicationService) CreateTask ¶
func (s *ApplicationService) CreateTask(ctx context.Context, req *connect.Request[aquariumv2.ApplicationServiceCreateTaskRequest]) (*connect.Response[aquariumv2.ApplicationServiceCreateTaskResponse], error)
CreateTask creates a new task for an application
func (*ApplicationService) Deallocate ¶
func (s *ApplicationService) Deallocate(ctx context.Context, req *connect.Request[aquariumv2.ApplicationServiceDeallocateRequest]) (*connect.Response[aquariumv2.ApplicationServiceDeallocateResponse], error)
Deallocate deallocates an application
func (*ApplicationService) Get ¶
func (s *ApplicationService) Get(ctx context.Context, req *connect.Request[aquariumv2.ApplicationServiceGetRequest]) (*connect.Response[aquariumv2.ApplicationServiceGetResponse], error)
Get returns an application by UID
func (*ApplicationService) GetResource ¶
func (s *ApplicationService) GetResource(ctx context.Context, req *connect.Request[aquariumv2.ApplicationServiceGetResourceRequest]) (*connect.Response[aquariumv2.ApplicationServiceGetResourceResponse], error)
GetResource returns the resource of an application
func (*ApplicationService) GetState ¶
func (s *ApplicationService) GetState(ctx context.Context, req *connect.Request[aquariumv2.ApplicationServiceGetStateRequest]) (*connect.Response[aquariumv2.ApplicationServiceGetStateResponse], error)
GetState returns the state of an application
func (*ApplicationService) GetTask ¶
func (s *ApplicationService) GetTask(ctx context.Context, req *connect.Request[aquariumv2.ApplicationServiceGetTaskRequest]) (*connect.Response[aquariumv2.ApplicationServiceGetTaskResponse], error)
GetTask returns a specific task for an application
func (*ApplicationService) List ¶
func (s *ApplicationService) List(ctx context.Context, _ *connect.Request[aquariumv2.ApplicationServiceListRequest]) (*connect.Response[aquariumv2.ApplicationServiceListResponse], error)
List returns a list of applications
func (*ApplicationService) ListResource ¶
func (s *ApplicationService) ListResource(ctx context.Context, _ *connect.Request[aquariumv2.ApplicationServiceListResourceRequest]) (*connect.Response[aquariumv2.ApplicationServiceListResourceResponse], error)
ListResource returns a list of applications
func (*ApplicationService) ListState ¶
func (s *ApplicationService) ListState(ctx context.Context, _ *connect.Request[aquariumv2.ApplicationServiceListStateRequest]) (*connect.Response[aquariumv2.ApplicationServiceListStateResponse], error)
ListState returns a list of applications
func (*ApplicationService) ListTask ¶
func (s *ApplicationService) ListTask(ctx context.Context, req *connect.Request[aquariumv2.ApplicationServiceListTaskRequest]) (*connect.Response[aquariumv2.ApplicationServiceListTaskResponse], error)
ListTask returns the list of tasks for an application
type AuthService ¶
type AuthService struct {
// contains filtered or unexported fields
}
AuthService implements the authentication service
func NewAuthService ¶
func NewAuthService(f *fish.Fish) *AuthService
NewAuthService creates a new auth service
func (*AuthService) GetPermissions ¶
func (s *AuthService) GetPermissions(ctx context.Context, _ *connect.Request[aquariumv2.AuthServiceGetPermissionsRequest]) (*connect.Response[aquariumv2.AuthServiceGetPermissionsResponse], error)
GetPermissions returns the current user's permissions
func (*AuthService) Login ¶
func (s *AuthService) Login(ctx context.Context, req *connect.Request[aquariumv2.AuthServiceLoginRequest]) (*connect.Response[aquariumv2.AuthServiceLoginResponse], error)
Login authenticates a user and returns a JWT token
func (*AuthService) ParseJWTToken ¶
func (s *AuthService) ParseJWTToken(tokenString string) (*JWTClaims, error)
ParseJWTToken parses a JWT token and returns the claims
func (*AuthService) RefreshToken ¶
func (s *AuthService) RefreshToken(ctx context.Context, req *connect.Request[aquariumv2.AuthServiceRefreshTokenRequest]) (*connect.Response[aquariumv2.AuthServiceRefreshTokenResponse], error)
RefreshToken refreshes an existing JWT token
func (*AuthService) ValidateToken ¶
func (s *AuthService) ValidateToken(ctx context.Context, req *connect.Request[aquariumv2.AuthServiceValidateTokenRequest]) (*connect.Response[aquariumv2.AuthServiceValidateTokenResponse], error)
ValidateToken validates a JWT token
type JWTClaims ¶
type JWTClaims struct {
UserName string `json:"user_name"`
Roles []string `json:"roles"`
jwt.RegisteredClaims
}
JWT claims structure
type LabelService ¶
type LabelService struct {
// contains filtered or unexported fields
}
LabelService implements the Label service
func (*LabelService) Create ¶
func (s *LabelService) Create(ctx context.Context, req *connect.Request[aquariumv2.LabelServiceCreateRequest]) (*connect.Response[aquariumv2.LabelServiceCreateResponse], error)
Create creates a new label
func (*LabelService) Get ¶
func (s *LabelService) Get(ctx context.Context, req *connect.Request[aquariumv2.LabelServiceGetRequest]) (*connect.Response[aquariumv2.LabelServiceGetResponse], error)
Get returns a label by name
func (*LabelService) List ¶
func (s *LabelService) List(ctx context.Context, req *connect.Request[aquariumv2.LabelServiceListRequest]) (*connect.Response[aquariumv2.LabelServiceListResponse], error)
List returns a list of labels
func (*LabelService) Remove ¶
func (s *LabelService) Remove(ctx context.Context, req *connect.Request[aquariumv2.LabelServiceRemoveRequest]) (*connect.Response[aquariumv2.LabelServiceRemoveResponse], error)
Remove deletes a label
func (*LabelService) Update ¶ added in v0.10.0
func (s *LabelService) Update(ctx context.Context, req *connect.Request[aquariumv2.LabelServiceUpdateRequest]) (*connect.Response[aquariumv2.LabelServiceUpdateResponse], error)
Update implements the Update RPC
type NodeService ¶
type NodeService struct {
// contains filtered or unexported fields
}
NodeService implements the Node service
func (*NodeService) Get ¶
func (s *NodeService) Get(ctx context.Context, req *connect.Request[aquariumv2.NodeServiceGetRequest]) (*connect.Response[aquariumv2.NodeServiceGetResponse], error)
Get returns information about any node
func (*NodeService) GetThis ¶
func (s *NodeService) GetThis(_ context.Context, _ *connect.Request[aquariumv2.NodeServiceGetThisRequest]) (*connect.Response[aquariumv2.NodeServiceGetThisResponse], error)
GetThis returns information about this node
func (*NodeService) List ¶
func (s *NodeService) List(ctx context.Context, _ *connect.Request[aquariumv2.NodeServiceListRequest]) (*connect.Response[aquariumv2.NodeServiceListResponse], error)
List returns a list of nodes
func (*NodeService) SetMaintenance ¶
func (s *NodeService) SetMaintenance(_ context.Context, req *connect.Request[aquariumv2.NodeServiceSetMaintenanceRequest]) (*connect.Response[aquariumv2.NodeServiceSetMaintenanceResponse], error)
SetMaintenance sets maintenance mode for this node
type RefreshTokenClaims ¶
type RefreshTokenClaims struct {
UserName string `json:"user_name"`
jwt.RegisteredClaims
}
RefreshTokenClaims structure for refresh tokens
type RoleService ¶
type RoleService struct {
aquariumv2connect.UnimplementedRoleServiceHandler
// contains filtered or unexported fields
}
RoleService implements the Role service
func (*RoleService) Create ¶
func (s *RoleService) Create(ctx context.Context, req *connect.Request[aquariumv2.RoleServiceCreateRequest]) (*connect.Response[aquariumv2.RoleServiceCreateResponse], error)
Create implements the Create RPC
func (*RoleService) Get ¶
func (s *RoleService) Get(ctx context.Context, req *connect.Request[aquariumv2.RoleServiceGetRequest]) (*connect.Response[aquariumv2.RoleServiceGetResponse], error)
Get implements the Get RPC
func (*RoleService) List ¶
func (s *RoleService) List(ctx context.Context, _ *connect.Request[aquariumv2.RoleServiceListRequest]) (*connect.Response[aquariumv2.RoleServiceListResponse], error)
List implements the List RPC
func (*RoleService) Remove ¶
func (s *RoleService) Remove(ctx context.Context, req *connect.Request[aquariumv2.RoleServiceRemoveRequest]) (*connect.Response[aquariumv2.RoleServiceRemoveResponse], error)
Remove implements the Remove RPC
func (*RoleService) Update ¶
func (s *RoleService) Update(ctx context.Context, req *connect.Request[aquariumv2.RoleServiceUpdateRequest]) (*connect.Response[aquariumv2.RoleServiceUpdateResponse], error)
Update implements the Update RPC
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server represents the Connect server
func NewServer ¶
func NewServer(f *fish.Fish, additionalServices []gate.RPCService) *Server
NewServer creates a new Connect server
func (*Server) ListenAndServe ¶
ListenAndServe starts the server
type StreamingService ¶
type StreamingService struct {
// contains filtered or unexported fields
}
StreamingService implements the streaming service
func NewStreamingService ¶
func NewStreamingService(f *fish.Fish) *StreamingService
NewStreamingService creates a new streaming service
func (*StreamingService) Connect ¶
func (s *StreamingService) Connect(ctx context.Context, stream *connect.BidiStream[aquariumv2.StreamingServiceConnectRequest, aquariumv2.StreamingServiceConnectResponse]) error
Connect handles bidirectional streaming for RPC requests
func (*StreamingService) GracefulShutdown ¶
func (s *StreamingService) GracefulShutdown(ctx context.Context)
GracefulShutdown initiates graceful shutdown of all streaming connections
func (*StreamingService) Subscribe ¶
func (s *StreamingService) Subscribe(ctx context.Context, req *connect.Request[aquariumv2.StreamingServiceSubscribeRequest], stream *connect.ServerStream[aquariumv2.StreamingServiceSubscribeResponse]) error
Subscribe handles server streaming for database change notifications
type SubscriptionPermissionCache ¶
type SubscriptionPermissionCache struct {
// contains filtered or unexported fields
}
SubscriptionPermissionCache manages user permissions for applications
func NewSubscriptionPermissionCache ¶
func NewSubscriptionPermissionCache() *SubscriptionPermissionCache
NewSubscriptionPermissionCache creates a new permission cache
func (*SubscriptionPermissionCache) CleanupStaleEntries ¶
func (spc *SubscriptionPermissionCache) CleanupStaleEntries(f *fish.Fish)
CleanupStaleEntries removes entries for applications that no longer exist
func (*SubscriptionPermissionCache) GrantAccess ¶
func (spc *SubscriptionPermissionCache) GrantAccess(userName string, appUID typesv2.ApplicationUID)
GrantAccess grants a user access to an application UID
func (*SubscriptionPermissionCache) HasAccess ¶
func (spc *SubscriptionPermissionCache) HasAccess(userName string, appUID typesv2.ApplicationUID) bool
HasAccess checks if a user has cached access to an application UID
func (*SubscriptionPermissionCache) RevokeAccess ¶
func (spc *SubscriptionPermissionCache) RevokeAccess(userName string, appUID typesv2.ApplicationUID)
RevokeAccess removes a user's access to an application UID
type UserService ¶
type UserService struct {
aquariumv2connect.UnimplementedUserServiceHandler
// contains filtered or unexported fields
}
UserService implements the User service
func (*UserService) Create ¶
func (s *UserService) Create(ctx context.Context, req *connect.Request[aquariumv2.UserServiceCreateRequest]) (*connect.Response[aquariumv2.UserServiceCreateResponse], error)
Create implements the Create RPC
func (*UserService) CreateGroup ¶ added in v0.10.0
func (s *UserService) CreateGroup(ctx context.Context, req *connect.Request[aquariumv2.UserServiceCreateGroupRequest]) (*connect.Response[aquariumv2.UserServiceCreateGroupResponse], error)
CreateGroup implements the CreateGroup RPC
func (*UserService) Get ¶
func (s *UserService) Get(ctx context.Context, req *connect.Request[aquariumv2.UserServiceGetRequest]) (*connect.Response[aquariumv2.UserServiceGetResponse], error)
Get implements the Get RPC
func (*UserService) GetGroup ¶ added in v0.10.0
func (s *UserService) GetGroup(ctx context.Context, req *connect.Request[aquariumv2.UserServiceGetGroupRequest]) (*connect.Response[aquariumv2.UserServiceGetGroupResponse], error)
GetGroup implements the GetGroup RPC
func (*UserService) GetMe ¶
func (*UserService) GetMe(ctx context.Context, _ *connect.Request[aquariumv2.UserServiceGetMeRequest]) (*connect.Response[aquariumv2.UserServiceGetMeResponse], error)
GetMe implements the GetMe RPC
func (*UserService) List ¶
func (s *UserService) List(ctx context.Context, _ *connect.Request[aquariumv2.UserServiceListRequest]) (*connect.Response[aquariumv2.UserServiceListResponse], error)
List implements the List RPC
func (*UserService) ListGroup ¶ added in v0.10.0
func (s *UserService) ListGroup(ctx context.Context, _ *connect.Request[aquariumv2.UserServiceListGroupRequest]) (*connect.Response[aquariumv2.UserServiceListGroupResponse], error)
ListGroup implements the ListGroup RPC
func (*UserService) Remove ¶
func (s *UserService) Remove(ctx context.Context, req *connect.Request[aquariumv2.UserServiceRemoveRequest]) (*connect.Response[aquariumv2.UserServiceRemoveResponse], error)
Remove implements the Remove RPC
func (*UserService) RemoveGroup ¶ added in v0.10.0
func (s *UserService) RemoveGroup(ctx context.Context, req *connect.Request[aquariumv2.UserServiceRemoveGroupRequest]) (*connect.Response[aquariumv2.UserServiceRemoveGroupResponse], error)
RemoveGroup implements the RemoveGroup RPC
func (*UserService) Update ¶
func (s *UserService) Update(ctx context.Context, req *connect.Request[aquariumv2.UserServiceUpdateRequest]) (*connect.Response[aquariumv2.UserServiceUpdateResponse], error)
Update implements the Update RPC
func (*UserService) UpdateGroup ¶ added in v0.10.0
func (s *UserService) UpdateGroup(ctx context.Context, req *connect.Request[aquariumv2.UserServiceUpdateGroupRequest]) (*connect.Response[aquariumv2.UserServiceUpdateGroupResponse], error)
UpdateGroup implements the UpdateGroup RPC