err:=q.QueryRow(ctx,`SELECT ua.id::text,ua.public_id::text,t.id::text,ua.platform_role FROM user_account ua JOIN tenant t ON t.id=ua.tenant_id AND t.status='active' WHERE t.public_id=$1::uuid AND ua.oidc_issuer=$2 AND ua.oidc_subject=$3 AND ua.status='active' AND ua.account_kind='operator'`,tenantPublicID,principal.Issuer,principal.Subject).Scan(&a.ID,&a.PublicID,&a.TenantID,&a.Role)
err=tx.QueryRow(ctx,`SELECT id::text,device_id::text,request_digest FROM device_enrollment_job WHERE tenant_id=$1::uuid AND actor_id=$2::uuid AND request_key=$3`,a.TenantID,a.ID,idempotencyKey).Scan(&jobID,&deviceID,&storedDigest)
err=tx.QueryRow(ctx,`SELECT id::text,tenant_id::text,model,COALESCE(hardware_revision,'') FROM device WHERE factory_mac=$1 FOR UPDATE`,input.FactoryMAC).Scan(&deviceID,&existingTenant,&model,&revision)
err=tx.QueryRow(ctx,`SELECT id::text FROM device_enrollment_job WHERE device_id=$1::uuid ORDER BY created_at DESC,id DESC LIMIT 1`,deviceID).Scan(&jobID)
_,err=tx.Exec(ctx,`INSERT INTO device(id,public_id,tenant_id,serial_digest,model,hardware_revision,credential_ref,activation_state,activation_reason,enrollment_mode,factory_device_id,factory_mac) VALUES($1::uuid,$2::uuid,$3::uuid,$4,$5,$6,$7,'FACTORY','controlled-production','physical_confirm',$8,$9)`,d.ID,d.PublicID,d.TenantID,digest([]byte(d.FactoryID)),d.Model,d.HardwareRevision,"onboarding://"+d.FactoryID,d.FactoryID,input.FactoryMAC)
iferr!=nil{
returnnil,err
}
_,err=tx.Exec(ctx,`INSERT INTO device_twin(device_id,tenant_id,desired_config) VALUES($1::uuid,$2::uuid,'{"voice_runtime":"volc_hardware_agent"}'::jsonb)`,d.ID,d.TenantID)
_,err=tx.Exec(ctx,`INSERT INTO device_onboarding_key(device_id,tenant_id,key_version,ciphertext,status,activated_at) VALUES($1::uuid,$2::uuid,1,$3,'ACTIVE',now())`,d.ID,d.TenantID,s.crypt.seal(randomBytes(32),keyAAD(d.ID,1)))
iferr:=tx.QueryRow(ctx,`SELECT ej.key_version,k.status FROM device_enrollment_job ej JOIN device_onboarding_key k ON k.device_id=ej.device_id AND k.key_version=ej.key_version WHERE ej.id=$1::uuid AND ej.device_id=$2::uuid FOR UPDATE OF ej,k`,jobID,d.ID).Scan(&version,&keyStatus);err!=nil{
returnd,err
}
ifkeyStatus=="PENDING"{
if_,err:=tx.Exec(ctx,`UPDATE device_onboarding_key SET status='REVOKED' WHERE device_id=$1::uuid AND status='ACTIVE' AND key_version<>$2`,d.ID,version);err!=nil{
returnd,err
}
if_,err:=tx.Exec(ctx,`UPDATE device_onboarding_key SET status='ACTIVE',activated_at=COALESCE(activated_at,now()) WHERE device_id=$1::uuid AND key_version=$2 AND status='PENDING'`,d.ID,version);err!=nil{
if_,err:=tx.Exec(ctx,`UPDATE device SET onboarding_released_at=COALESCE(onboarding_released_at,now()),onboarding_revision=onboarding_revision+1,version=version+1,updated_at=now() WHERE id=$1::uuid`,d.ID);err!=nil{
returnd,err
}
if_,err:=tx.Exec(ctx,`UPDATE device_enrollment_job SET status='RELEASED',evidence_ref=COALESCE(evidence_ref,'direct-create'),delivery_ciphertext=NULL,delivery_expires_at=NULL WHERE id=$1::uuid`,jobID);err!=nil{
err=tx.QueryRow(ctx,`SELECT id::text FROM device WHERE public_id=$1::uuid AND tenant_id=$2::uuid FOR UPDATE`,publicID,a.TenantID).Scan(&id)
iferr!=nil{
returnnil,errAccess
}
d,err:=readDevice(ctx,tx,id,false)
iferr!=nil{
returnnil,err
}
varversionint64
varstoredKey,statusstring
vardelivered[]byte
varexpiry*time.Time
err=tx.QueryRow(ctx,`SELECT key_version,COALESCE(receiver_key,''),delivery_ciphertext,delivery_expires_at,status FROM device_enrollment_job WHERE id=$1::uuid AND device_id=$2::uuid AND tenant_id=$3::uuid FOR UPDATE`,input.JobID,id,a.TenantID).Scan(&version,&storedKey,&delivered,&expiry,&status)
err=tx.QueryRow(ctx,`SELECT ciphertext FROM device_onboarding_key WHERE device_id=$1::uuid AND key_version=$2 AND status='PENDING'`,id,version).Scan(&encrypted)
_,err=tx.Exec(ctx,`UPDATE device_enrollment_job SET receiver_key=$2,delivery_ciphertext=$3,delivery_expires_at=$4,status='DELIVERED' WHERE id=$1::uuid`,input.JobID,input.ReceiverKey,saved,until)
err=tx.QueryRow(ctx,`SELECT id::text FROM device WHERE public_id=$1::uuid AND tenant_id=$2::uuid AND enrollment_mode='physical_confirm' AND status='registered' AND activation_state NOT IN ('LOST','REVOKED') FOR UPDATE`,publicID,a.TenantID).Scan(&id)
iferr!=nil{
returnnil,errAccess
}
d,err:=readDevice(ctx,tx,id,false)
iferr!=nil{
returnnil,err
}
varstatusstring
varversionint64
err=tx.QueryRow(ctx,`SELECT status,key_version FROM device_enrollment_job WHERE id=$1::uuid AND device_id=$2::uuid FOR UPDATE`,in.JobID,id).Scan(&status,&version)
_,err=tx.Exec(ctx,`UPDATE device_onboarding_key SET status='REVOKED' WHERE device_id=$1::uuid AND status='ACTIVE'`,id)
iferr!=nil{
returnnil,err
}
_,err=tx.Exec(ctx,`UPDATE device_onboarding_key SET status='ACTIVE',activated_at=now() WHERE device_id=$1::uuid AND key_version=$2 AND status='PENDING'`,id,version)
_,err=tx.Exec(ctx,`UPDATE device SET onboarding_released_at=COALESCE(onboarding_released_at,now()),onboarding_revision=onboarding_revision+1,version=version+1,updated_at=now() WHERE id=$1::uuid`,id)
iferr!=nil{
returnnil,err
}
_,err=tx.Exec(ctx,`UPDATE device_enrollment_job SET status='RELEASED',evidence_ref=$2,delivery_ciphertext=NULL WHERE id=$1::uuid`,in.JobID,in.Evidence)