|
| 1 | +This document outlines the compatibility rules when upgrading snap-in versions. These rules determine what changes are allowed in a patch upgrade. |
| 2 | + |
| 3 | +## Connections |
| 4 | +- New optional connections can be added |
| 5 | +- New required connections cannot be added |
| 6 | +- Existing connections can be removed |
| 7 | +- For existing connections: |
| 8 | + - Description can be changed |
| 9 | + - Display name can be changed |
| 10 | + - New keyring types can be added |
| 11 | + - Existing keyring types cannot be removed |
| 12 | + - Optional connections cannot be made required |
| 13 | + - Required connections can be made optional |
| 14 | + |
| 15 | +## Event Sources |
| 16 | +- New event sources cannot be added |
| 17 | +- Existing event sources cannot be removed |
| 18 | +- For existing event sources: |
| 19 | + - Description can be changed |
| 20 | + - Display name can be changed |
| 21 | + - Type cannot be changed |
| 22 | + - Connection can be removed but cannot be changed |
| 23 | + - Source config can be changed (test changes thoroughly) |
| 24 | + - Setup instructions can be changed |
| 25 | + - Function can be changed |
| 26 | + |
| 27 | +## Tags |
| 28 | +- New tags can be added |
| 29 | +- Existing tags cannot be removed |
| 30 | +- For existing tags: |
| 31 | + - Description can be changed |
| 32 | + |
| 33 | +## Automations |
| 34 | +- Full flexibility - can be added, removed, or modified |
| 35 | +- Description can be changed |
| 36 | +- Source can be changed |
| 37 | +- Allowed event types can be changed |
| 38 | +- Function to execute can be changed |
| 39 | + |
| 40 | +## Hooks |
| 41 | +- New hook types can be added |
| 42 | +- Existing hook types can be removed |
| 43 | +- Function to execute can be changed |
| 44 | + |
| 45 | +## Functions |
| 46 | +- Full flexibility - can be added, removed, or modified |
| 47 | +- All properties can be changed |
| 48 | + |
| 49 | +## Commands |
| 50 | +- Full flexibility - can be added, removed, or modified |
| 51 | +- All properties can be changed |
| 52 | + |
| 53 | +## Snap Kit Actions |
| 54 | +- Can be removed |
| 55 | +- For existing snap kit actions: |
| 56 | + - Description can be changed |
| 57 | + - Function can be changed |
| 58 | + |
| 59 | +## Snap Components |
| 60 | +- Can be removed |
| 61 | +- For existing snap components: |
| 62 | + - Display name can be changed |
| 63 | + - Description can be changed |
| 64 | + - Surface cannot be changed |
| 65 | + - Snap kit action name can be changed |
| 66 | + - Snap kit body can be changed |
| 67 | + - Initializer can be changed |
| 68 | + |
| 69 | +## Service Account |
| 70 | +- Display name can be changed |
| 71 | +- Description can be changed |
| 72 | + |
| 73 | +## Inputs (Global Variables) |
| 74 | +- Can be added or removed |
| 75 | +- For existing inputs: |
| 76 | + - Type cannot be changed |
| 77 | + - All other properties can be modified |
| 78 | + |
| 79 | +## Imports |
| 80 | +- New imports can be added |
| 81 | +- Existing imports cannot be removed |
| 82 | +- For existing imports: |
| 83 | + - Display name can be changed |
| 84 | + - Description can be changed |
| 85 | + - Function cannot be changed |
| 86 | + - New allowed keyring types can be added |
| 87 | + - Existing allowed keyring types cannot be removed |
| 88 | + - Function name can be changed |
| 89 | + - Loader function cannot be removed once set |
| 90 | + |
| 91 | +## User Level Keyrings |
| 92 | +- New keyrings can be added |
| 93 | +- Existing keyrings can be removed |
| 94 | +- For existing keyrings: |
| 95 | + - Description can be changed |
| 96 | + - Display name can be changed |
| 97 | + - New allowed types can be added |
| 98 | + - Existing allowed types cannot be removed |
| 99 | + - Required keyrings can be made optional |
| 100 | + |
| 101 | +## User Level Inputs |
| 102 | +- Can be added or removed |
| 103 | +- For existing inputs: |
| 104 | + - Type cannot be changed |
| 105 | + - All other properties can be modified |
| 106 | + |
| 107 | +## Keyring Types |
| 108 | +- Can be added or removed |
| 109 | +- For existing keyring types: |
| 110 | + - Name can be changed |
| 111 | + - Description can be changed |
| 112 | + - Scopes can be changed |
| 113 | + - Scope delimiter can be changed |
| 114 | + - Authorize, refresh, and revoke functions can be changed |
| 115 | + - Organization data can be changed |
| 116 | + - External service name can be changed |
| 117 | + - Kind cannot be changed |
| 118 | + - Keyring type template cannot be changed |
| 119 | + - OAuth secret ID cannot be changed |
| 120 | + |
| 121 | +## Functions Build Config |
| 122 | +- Full flexibility - can be added, removed, or modified |
| 123 | +- All properties can be changed |
| 124 | + |
| 125 | +## Configuration Handler |
| 126 | +- Full flexibility - can be added, removed, or modified |
| 127 | +- All properties can be changed |
| 128 | + |
| 129 | +## Operations |
| 130 | +- New operations can be added |
| 131 | +- Existing operations cannot be removed |
| 132 | +- For existing operations: |
| 133 | + - Operation type cannot be changed |
| 134 | + - Input ports cannot be changed (including type and schema) |
| 135 | + - Output ports cannot be changed (including type and schema) |
| 136 | + - Keyring types follow the same rules as Connections |
0 commit comments