Merge pull request #59 from passbolt/v5-schema-fixes
Some checks failed
Go / test (push) Has been cancelled

V5 schema fixes
This commit is contained in:
Samuel Lorch 2025-08-11 15:53:14 +02:00 committed by GitHub
commit 1ffa5a23bd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 41 additions and 47 deletions

View file

@ -15,22 +15,19 @@ var ResourceSchemas = map[string]json.RawMessage{
"maxLength": 255 "maxLength": 255
}, },
"username": { "username": {
"type": "string", "type": ["string", "null"],
"maxLength": 255, "maxLength": 255
"nullable": true
}, },
"uris": { "uris": {
"type": "array", "type": "array",
"items": { "items": {
"type": "string", "type": "string",
"maxLength": 1024, "maxLength": 1024
"nullable": true
} }
}, },
"description": { "description": {
"type": "string", "type": ["string", "null"],
"maxLength": 10000, "maxLength": 10000
"nullable": true
} }
} }
}, },
@ -43,14 +40,12 @@ var ResourceSchemas = map[string]json.RawMessage{
"enum": ["PASSBOLT_SECRET_DATA"] "enum": ["PASSBOLT_SECRET_DATA"]
}, },
"password": { "password": {
"type": "string", "type": ["string", "null"],
"maxLength": 4096, "maxLength": 4096
"nullable": true
}, },
"description": { "description": {
"type": "string", "type": ["string", "null"],
"maxLength": 10000, "maxLength": 10000
"nullable": true
} }
} }
} }
@ -66,22 +61,19 @@ var ResourceSchemas = map[string]json.RawMessage{
"maxLength": 255 "maxLength": 255
}, },
"username": { "username": {
"type": "string", "type": ["string", "null"],
"maxLength": 255, "maxLength": 255
"nullable": true
}, },
"uris": { "uris": {
"type": "array", "type": "array",
"items": { "items": {
"type": "string", "type": "string",
"maxLength": 1024, "maxLength": 1024
"nullable": true
} }
}, },
"description": { "description": {
"type": "string", "type": ["string", "null"],
"maxLength": 10000, "maxLength": 10000
"nullable": true
} }
} }
}, },
@ -101,22 +93,19 @@ var ResourceSchemas = map[string]json.RawMessage{
"maxLength": 255 "maxLength": 255
}, },
"username": { "username": {
"type": "string", "type": ["string", "null"],
"maxLength": 255, "maxLength": 255
"nullable": true
}, },
"uris": { "uris": {
"type": "array", "type": "array",
"items": { "items": {
"type": "string", "type": "string",
"maxLength": 1024, "maxLength": 1024
"nullable": true
} }
}, },
"description": { "description": {
"type": "string", "type": ["string", "null"],
"maxLength": 10000, "maxLength": 10000
"nullable": true
} }
} }
}, },
@ -129,14 +118,12 @@ var ResourceSchemas = map[string]json.RawMessage{
"enum": ["PASSBOLT_SECRET_DATA"] "enum": ["PASSBOLT_SECRET_DATA"]
}, },
"password": { "password": {
"type": "string", "type": ["string", "null"],
"maxLength": 4096, "maxLength": 4096
"nullable": true
}, },
"description": { "description": {
"type": "string", "type": ["string", "null"],
"maxLength": 10000, "maxLength": 10000
"nullable": true
}, },
"totp": { "totp": {
"type": "object", "type": "object",
@ -174,23 +161,16 @@ var ResourceSchemas = map[string]json.RawMessage{
"type": "string", "type": "string",
"maxLength": 255 "maxLength": 255
}, },
"username": {
"type": "string",
"maxLength": 255,
"nullable": true
},
"uris": { "uris": {
"type": "array", "type": "array",
"items": { "items": {
"type": "string", "type": "string",
"maxLength": 1024, "maxLength": 1024
"nullable": true
} }
}, },
"description": { "description": {
"type": "string", "type": ["string", "null"],
"maxLength": 10000, "maxLength": 10000
"nullable": true
} }
} }
}, },

View file

@ -173,7 +173,21 @@ func GetResourceFromData(c *api.Client, resource api.Resource, secret api.Secret
pw = rawSecretData pw = rawSecretData
case "v5-totp-standalone": case "v5-totp-standalone":
// nothing fits into the interface in this case rawMetadata, err := GetResourceMetadata(ctx, c, &resource, &rType)
if err != nil {
return "", "", "", "", "", "", fmt.Errorf("Getting Metadata: %w", err)
}
var metadata api.ResourceMetadataTypeV5TOTPStandalone
err = json.Unmarshal([]byte(rawMetadata), &metadata)
if err != nil {
return "", "", "", "", "", "", fmt.Errorf("Parsing Decrypted Metadata: %w", err)
}
name = metadata.Name
if len(metadata.URIs) != 0 {
uri = metadata.URIs[0]
}
default: default:
return "", "", "", "", "", "", fmt.Errorf("Unknown ResourceType: %v", rType.Slug) return "", "", "", "", "", "", fmt.Errorf("Unknown ResourceType: %v", rType.Slug)
} }