1. Users need to create JDBC connection to database. This requires necessary JDBC drivers to be available inside lib folder of the jira (or may be we can put inside the add-on jar). We need a UI to configure database url.
2. We need to read JDBC metadata and show user available tables.
3. After selecting the table user need to select which columns will map to which fields of the option.
4. Synchronization will be periodic (user configureable?) and we need to update issue indexes if value of an option is renamed. So wee need to detect rename of value.
5. Deleting an option is more serious operation because it removes values from the issues. So this should still be manual operation. May be we can highlight deleted options or we can automatically disable deleted options.