feat(auth): add first-party acceptance harness
CI / test (push) Failing after 1m4s

This commit is contained in:
m
2026-09-01 23:13:15 +03:00
parent 750c87c926
commit 81ce8dfdb2
17 changed files with 356 additions and 10 deletions
+10
View File
@@ -62,3 +62,13 @@ func (r *IdentityRepository) UpdateCreatorPassword(ctx context.Context, actor id
}
return nil
}
func (r *IdentityRepository) LoadServicePrincipal(ctx context.Context, principal identity.PrincipalID) (identity.ServicePrincipal, error) {
var value identity.ServicePrincipal
err := r.pool.QueryRow(ctx, `SELECT actor_id, principal_id, kind, purpose, synthetic_scope, active, revision FROM identity.service_principals WHERE principal_id=$1`, principal).
Scan(&value.ActorID, &value.PrincipalID, &value.Kind, &value.Purpose, &value.SyntheticScope, &value.Active, &value.Revision)
if err != nil {
return identity.ServicePrincipal{}, fmt.Errorf("load service principal: %w", err)
}
return value, nil
}
+22
View File
@@ -13,6 +13,13 @@ import (
// evidence. It never evaluates, promotes or changes Capability state.
type SelfRepository struct{ pool *pgxpool.Pool }
type AcceptanceSummary struct {
LearningSignals int `json:"learning_signals"`
ImprovementNeeds int `json:"improvement_needs"`
LearningLedger int `json:"learning_ledger"`
SyntheticPrincipal string `json:"synthetic_principal"`
}
func OpenSelf(ctx context.Context, config ContinuityConfig) (*SelfRepository, error) {
pool, err := openPool(ctx, config)
if err != nil {
@@ -23,6 +30,21 @@ func OpenSelf(ctx context.Context, config ContinuityConfig) (*SelfRepository, er
func (r *SelfRepository) Close() { r.pool.Close() }
func (r *SelfRepository) AcceptanceSummary(ctx context.Context, principalID string) (AcceptanceSummary, error) {
var value AcceptanceSummary
value.SyntheticPrincipal = principalID
if err := r.pool.QueryRow(ctx, `SELECT COUNT(*) FROM self.learning_signals WHERE principal_id=$1`, principalID).Scan(&value.LearningSignals); err != nil {
return AcceptanceSummary{}, err
}
if err := r.pool.QueryRow(ctx, `SELECT COUNT(*) FROM self.improvement_needs WHERE principal_id=$1`, principalID).Scan(&value.ImprovementNeeds); err != nil {
return AcceptanceSummary{}, err
}
if err := r.pool.QueryRow(ctx, `SELECT COUNT(*) FROM self.learning_ledger WHERE principal_id=$1`, principalID).Scan(&value.LearningLedger); err != nil {
return AcceptanceSummary{}, err
}
return value, nil
}
func (r *SelfRepository) SaveImprovementNeed(ctx context.Context, value selfcontract.ImprovementNeed) error {
subject, err := json.Marshal(value.SubjectRef)
if err != nil {