(tgt T)
| 163 | var noID = uuid.MustParse("51A51C00-0000-0000-0000-000000000000") |
| 164 | |
| 165 | func ResourceID[T Auditable](tgt T) uuid.UUID { |
| 166 | switch typed := any(tgt).(type) { |
| 167 | case database.Template: |
| 168 | return typed.ID |
| 169 | case database.TemplateVersion: |
| 170 | return typed.ID |
| 171 | case database.User: |
| 172 | return typed.ID |
| 173 | case database.WorkspaceTable: |
| 174 | return typed.ID |
| 175 | case database.WorkspaceBuild: |
| 176 | return typed.ID |
| 177 | case database.GitSSHKey: |
| 178 | return typed.UserID |
| 179 | case database.AuditableGroup: |
| 180 | return typed.Group.ID |
| 181 | case database.APIKey: |
| 182 | return typed.UserID |
| 183 | case database.License: |
| 184 | return typed.UUID |
| 185 | case database.WorkspaceProxy: |
| 186 | return typed.ID |
| 187 | case database.AuditOAuthConvertState: |
| 188 | // The merge state is for the given user |
| 189 | return typed.UserID |
| 190 | case database.HealthSettings: |
| 191 | // Artificial ID for auditing purposes |
| 192 | return typed.ID |
| 193 | case database.NotificationsSettings: |
| 194 | // Artificial ID for auditing purposes |
| 195 | return typed.ID |
| 196 | case database.PrebuildsSettings: |
| 197 | // Artificial ID for auditing purposes |
| 198 | return typed.ID |
| 199 | case database.OAuth2ProviderApp: |
| 200 | return typed.ID |
| 201 | case database.OAuth2ProviderAppSecret: |
| 202 | return typed.ID |
| 203 | case database.CustomRole: |
| 204 | return typed.ID |
| 205 | case database.AuditableOrganizationMember: |
| 206 | return typed.UserID |
| 207 | case database.Organization: |
| 208 | return typed.ID |
| 209 | case database.NotificationTemplate: |
| 210 | return typed.ID |
| 211 | case idpsync.OrganizationSyncSettings: |
| 212 | return noID // Deployment all uses the same org sync settings |
| 213 | case idpsync.GroupSyncSettings: |
| 214 | return noID // Org field on audit log has org id |
| 215 | case idpsync.RoleSyncSettings: |
| 216 | return noID // Org field on audit log has org id |
| 217 | case database.TaskTable: |
| 218 | return typed.ID |
| 219 | case database.AiSeatState: |
| 220 | return typed.UserID |
| 221 | case database.AIProvider: |
| 222 | return typed.ID |
no outgoing calls
no test coverage detected