1Password / connect

Access your 1Password secrets using a 1Password Connect Server
https://developer.1password.com/docs/connect
152 stars 29 forks source link

Unable to Create SSH Key #77

Open Omicron7 opened 11 months ago

Omicron7 commented 11 months ago

When adding an item via the connect API with category = "SSH_KEY", the resultant private_key is continually returned as Field type = "STRING" instead of the passed in Field type = "SSHKEY".

Example: item.json

{
  "vault": {
    "id": "abc123"
  },
  "title": "SSH Key",
  "category": "SSH_KEY",
  "fields": [
    {
      "id": "private_key",
      "label": "private key",
      "type": "SSHKEY",
      "value": "-----BEGIN OPENSSH PRIVATE KEY-----\nabcdefghijklmnopqrstuvwxyz\n...\n-----END OPENSSH PRIVATE KEY-----\n"
    }
  ]
}

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $OP_API_TOKEN" -d @item.json https://connect-server.example.com/v1/vaults/abc123/items

{
  "vault": {
    "id": "abc123"
  },
  "title": "SSH Key",
  "category": "SSH_KEY",
  "fields": [
    {
      "id": "private_key",
      "label": "private key",
      "type": "STRING",
      "value": "-----BEGIN OPENSSH PRIVATE KEY-----\nabcdefghijklmnopqrstuvwxyz\n...\n-----END OPENSSH PRIVATE KEY-----\n"
    }
  ]
}

When getting an existing SSH_Key from the Connect API, the response includes the correct Field type = "SSHKEY". I've tested using both Field types of SSH_KEY and SSHKEY as I've seen them both mentioned in the docs/returned responses and connect-sdk-go. I ran into this issue while working on adding SSH Key support to the 1Password Terrafrom provider.