Documentation
¶
Index ¶
- func CleanupTestData(t *testing.T, db *gorm.DB)
- func RequireTestDB(t *testing.T) *gorm.DB
- func SetupMockDB(t *testing.T) (*gorm.DB, sqlmock.Sqlmock, func())
- func SetupSQLiteTestDB(t *testing.T) *gorm.DB
- type ApplicationService
- func (s *ApplicationService) CreateApplication(ctx context.Context, req *models.CreateApplicationRequest) (*models.ApplicationResponse, error)
- func (s *ApplicationService) CreateApplicationSubmission(ctx context.Context, req *models.CreateApplicationSubmissionRequest) (*models.ApplicationSubmissionResponse, error)
- func (s *ApplicationService) GetApplication(ctx context.Context, applicationID string) (*models.ApplicationResponse, error)
- func (s *ApplicationService) GetApplicationIdByIdpClientId(ctx context.Context, idpClientId string) (*models.ApplicationIDResponse, error)
- func (s *ApplicationService) GetApplicationSubmission(ctx context.Context, submissionID string) (*models.ApplicationSubmissionResponse, error)
- func (s *ApplicationService) GetApplicationSubmissions(ctx context.Context, MemberID *string, statusFilter *[]string) ([]models.ApplicationSubmissionResponse, error)
- func (s *ApplicationService) GetApplications(ctx context.Context, MemberID *string) ([]models.ApplicationResponse, error)
- func (s *ApplicationService) UpdateApplication(ctx context.Context, applicationID string, ...) (*models.ApplicationResponse, error)
- func (s *ApplicationService) UpdateApplicationPolicy(ctx context.Context, applicationID string, ...) (*models.ApplicationResponse, error)
- func (s *ApplicationService) UpdateApplicationSubmission(ctx context.Context, submissionID string, ...) (*models.ApplicationSubmissionResponse, error)
- type MemberService
- func (s *MemberService) CreateMember(ctx context.Context, req *models.CreateMemberRequest) (*models.MemberResponse, error)
- func (s *MemberService) GetAllMembers(ctx context.Context, idpUserId *string, email *string) ([]models.MemberResponse, error)
- func (s *MemberService) GetMember(ctx context.Context, memberID string) (*models.MemberResponse, error)
- func (s *MemberService) UpdateMember(ctx context.Context, memberID string, req *models.UpdateMemberRequest) (*models.MemberResponse, error)
- type MockRoundTripper
- type PDPService
- func (s *PDPService) CreatePolicyMetadata(schemaId string, sdl string) (*models.PolicyMetadataCreateResponse, error)
- func (s *PDPService) CreatePolicyMetadataFromRecords(schemaId string, records []models.PolicyMetadataCreateRequestRecord) (*models.PolicyMetadataCreateResponse, error)
- func (s *PDPService) UpdateAllowList(request models.AllowListUpdateRequest) (*models.AllowListUpdateResponse, error)
- type SchemaService
- func (s *SchemaService) CreateSchema(req *models.CreateSchemaRequest) (*models.SchemaResponse, error)
- func (s *SchemaService) CreateSchemaSubmission(req *models.CreateSchemaSubmissionRequest) (*models.SchemaSubmissionResponse, error)
- func (s *SchemaService) GetSchema(schemaID string) (*models.SchemaResponse, error)
- func (s *SchemaService) GetSchemaSubmission(submissionID string) (*models.SchemaSubmissionResponse, error)
- func (s *SchemaService) GetSchemaSubmissions(memberID *string, statusFilter *[]string) ([]*models.SchemaSubmissionResponse, error)
- func (s *SchemaService) GetSchemas(memberID *string) ([]*models.SchemaResponse, error)
- func (s *SchemaService) UpdateSchema(schemaID string, req *models.UpdateSchemaRequest) (*models.SchemaResponse, error)
- func (s *SchemaService) UpdateSchemaSubmission(submissionID string, req *models.UpdateSchemaSubmissionRequest) (*models.SchemaSubmissionResponse, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CleanupTestData ¶
CleanupTestData removes all test data from the database Exported for use in handler tests
func RequireTestDB ¶
RequireTestDB is a helper function that sets up a test database and fails the test if the database cannot be established. This provides a cleaner API for tests that absolutely require a database connection.
Usage:
db := RequireTestDB(t) // No need to check for nil - test will fail if DB setup fails
func SetupMockDB ¶
SetupMockDB creates a mock database for testing using go-sqlmock
Types ¶
type ApplicationService ¶
type ApplicationService struct {
// contains filtered or unexported fields
}
ApplicationService handles application-related operations
func NewApplicationService ¶
func NewApplicationService(db *gorm.DB, pdpService *PDPService, idp idp.IdentityProviderAPI) *ApplicationService
NewApplicationService creates a new application service
func (*ApplicationService) CreateApplication ¶
func (s *ApplicationService) CreateApplication(ctx context.Context, req *models.CreateApplicationRequest) (*models.ApplicationResponse, error)
CreateApplication creates a new application. If req.IdpApplicationID and req.IdpClientID are both set, the caller has already provisioned the OAuth2 client directly in the IDP (e.g. manually via ThunderID's console, since idpfactory only supports Asgardeo's admin API today) - IDP creation is skipped and those values are used as-is.
func (*ApplicationService) CreateApplicationSubmission ¶
func (s *ApplicationService) CreateApplicationSubmission(ctx context.Context, req *models.CreateApplicationSubmissionRequest) (*models.ApplicationSubmissionResponse, error)
CreateApplicationSubmission creates a new application submission
func (*ApplicationService) GetApplication ¶
func (s *ApplicationService) GetApplication(ctx context.Context, applicationID string) (*models.ApplicationResponse, error)
GetApplication retrieves an application by ID
func (*ApplicationService) GetApplicationIdByIdpClientId ¶
func (s *ApplicationService) GetApplicationIdByIdpClientId(ctx context.Context, idpClientId string) (*models.ApplicationIDResponse, error)
GetApplicationIdByIdpClientId retrieves applicationId by idpClientId
func (*ApplicationService) GetApplicationSubmission ¶
func (s *ApplicationService) GetApplicationSubmission(ctx context.Context, submissionID string) (*models.ApplicationSubmissionResponse, error)
GetApplicationSubmission retrieves an application submission by ID
func (*ApplicationService) GetApplicationSubmissions ¶
func (s *ApplicationService) GetApplicationSubmissions(ctx context.Context, MemberID *string, statusFilter *[]string) ([]models.ApplicationSubmissionResponse, error)
GetApplicationSubmissions retrieves all application submissions and filters by member ID if provided
func (*ApplicationService) GetApplications ¶
func (s *ApplicationService) GetApplications(ctx context.Context, MemberID *string) ([]models.ApplicationResponse, error)
GetApplications retrieves all applications and filters by member ID if provided
func (*ApplicationService) UpdateApplication ¶
func (s *ApplicationService) UpdateApplication(ctx context.Context, applicationID string, req *models.UpdateApplicationRequest) (*models.ApplicationResponse, error)
UpdateApplication updates an existing application
func (*ApplicationService) UpdateApplicationPolicy ¶
func (s *ApplicationService) UpdateApplicationPolicy(ctx context.Context, applicationID string, req *models.UpdateApplicationPolicyRequest) (*models.ApplicationResponse, error)
UpdateApplicationPolicy replaces an existing application's allow-list in the PDP and persists the resulting selected fields on the application record.
func (*ApplicationService) UpdateApplicationSubmission ¶
func (s *ApplicationService) UpdateApplicationSubmission(ctx context.Context, submissionID string, req *models.UpdateApplicationSubmissionRequest) (*models.ApplicationSubmissionResponse, error)
UpdateApplicationSubmission updates an existing application submission
type MemberService ¶
type MemberService struct {
// contains filtered or unexported fields
}
MemberService handles Member-related operations
func NewMemberService ¶
func NewMemberService(db *gorm.DB, idp idp.IdentityProviderAPI) *MemberService
NewMemberService creates a new Member service
func (*MemberService) CreateMember ¶
func (s *MemberService) CreateMember(ctx context.Context, req *models.CreateMemberRequest) (*models.MemberResponse, error)
CreateMember creates a new Member. Normally this also provisions a user in the IDP and adds them to the "OpenNDX_Members" group there, so all new members are automatically assigned it. If req.IdpUserID is set, the caller has already provisioned that user directly in the IDP (e.g. manually via ThunderID's console, since idpfactory only supports Asgardeo's admin API today) - IDP creation and group assignment are skipped, and the caller is responsible for that group/role assignment having already happened.
func (*MemberService) GetAllMembers ¶
func (s *MemberService) GetAllMembers(ctx context.Context, idpUserId *string, email *string) ([]models.MemberResponse, error)
GetAllMembers retrieves all members, optionally filtered by idpUserId or email
func (*MemberService) GetMember ¶
func (s *MemberService) GetMember(ctx context.Context, memberID string) (*models.MemberResponse, error)
GetMember retrieves a Member by ID
func (*MemberService) UpdateMember ¶
func (s *MemberService) UpdateMember(ctx context.Context, memberID string, req *models.UpdateMemberRequest) (*models.MemberResponse, error)
UpdateMember updates an existing Member
type MockRoundTripper ¶
MockRoundTripper is a mock implementation of http.RoundTripper
type PDPService ¶
type PDPService struct {
// HTTPClient is used to make requests to the PDP
HTTPClient *http.Client
// contains filtered or unexported fields
}
PDPService handles communication with the Policy Decision Point
func NewPDPService ¶
func NewPDPService(baseURL string) *PDPService
NewPDPService creates a new instance of PDPService. The PDP is reached through a trusted API gateway, so no API key is required.
func (*PDPService) CreatePolicyMetadata ¶
func (s *PDPService) CreatePolicyMetadata(schemaId string, sdl string) (*models.PolicyMetadataCreateResponse, error)
CreatePolicyMetadata sends a request to create policy metadata in the PDP, parsing the field records out of a GraphQL SDL string.
func (*PDPService) CreatePolicyMetadataFromRecords ¶
func (s *PDPService) CreatePolicyMetadataFromRecords(schemaId string, records []models.PolicyMetadataCreateRequestRecord) (*models.PolicyMetadataCreateResponse, error)
CreatePolicyMetadataFromRecords sends a request to create policy metadata in the PDP from caller-supplied records directly, skipping SDL/GraphQL parsing entirely.
func (*PDPService) UpdateAllowList ¶
func (s *PDPService) UpdateAllowList(request models.AllowListUpdateRequest) (*models.AllowListUpdateResponse, error)
UpdateAllowList sends a request to update the allow list in the PDP
type SchemaService ¶
type SchemaService struct {
// contains filtered or unexported fields
}
SchemaService handles schema-related operations
func NewSchemaService ¶
func NewSchemaService(db *gorm.DB, policyService *PDPService) *SchemaService
NewSchemaService creates a new schema service
func (*SchemaService) CreateSchema ¶
func (s *SchemaService) CreateSchema(req *models.CreateSchemaRequest) (*models.SchemaResponse, error)
CreateSchema creates a new schema. Exactly one of req.SDL / req.Fields must be set: SDL is parsed into policy metadata records via GraphQL directives, while Fields are used directly, skipping that parsing entirely.
func (*SchemaService) CreateSchemaSubmission ¶
func (s *SchemaService) CreateSchemaSubmission(req *models.CreateSchemaSubmissionRequest) (*models.SchemaSubmissionResponse, error)
CreateSchemaSubmission creates a new schema
func (*SchemaService) GetSchema ¶
func (s *SchemaService) GetSchema(schemaID string) (*models.SchemaResponse, error)
GetSchema retrieves a schema by ID
func (*SchemaService) GetSchemaSubmission ¶
func (s *SchemaService) GetSchemaSubmission(submissionID string) (*models.SchemaSubmissionResponse, error)
GetSchemaSubmission retrieves a schema submission by ID
func (*SchemaService) GetSchemaSubmissions ¶
func (s *SchemaService) GetSchemaSubmissions(memberID *string, statusFilter *[]string) ([]*models.SchemaSubmissionResponse, error)
GetSchemaSubmissions Get all schema submissions and filter by member ID OR Status Array if given
func (*SchemaService) GetSchemas ¶
func (s *SchemaService) GetSchemas(memberID *string) ([]*models.SchemaResponse, error)
GetSchemas Get all schemas and filter by member ID if given
func (*SchemaService) UpdateSchema ¶
func (s *SchemaService) UpdateSchema(schemaID string, req *models.UpdateSchemaRequest) (*models.SchemaResponse, error)
UpdateSchema updates an existing schema
func (*SchemaService) UpdateSchemaSubmission ¶
func (s *SchemaService) UpdateSchemaSubmission(submissionID string, req *models.UpdateSchemaSubmissionRequest) (*models.SchemaSubmissionResponse, error)
UpdateSchemaSubmission updates an existing schema submission