Is there a list of allowed Groovy Imports and Libraries

Does anybody have a full listing of the allow-listed groovy and java libraries that can be included in drivers. I can't find it in the developer documents.

If there is a list (or a link to where it can be found in the developer docs), please post. Otherwise, please reply adding any that you know of so we can build the list.

import java.util.concurrent.* // Available (allow-listed) concurrency classes: ConcurrentHashMap, ConcurrentLinkedQueue, Semaphore, SynchronousQueue
import groovy.transform.Field

If it's not already available, I know @gopher.ny whitelisted some libraries for me recently (sorry to put you on the spot).... maybe you can also let us know what is possible in this space....

I'll be revisiting developer documentation after 2.2.9 settles down, but here's the list in the meantime.

com.nimbusds.jose.crypto.RSASSASigner
com.nimbusds.jose.JOSEObjectType
com.nimbusds.jose.JWEHeader
com.nimbusds.jose.JWEObject
com.nimbusds.jose.jwk.JWK
com.nimbusds.jose.jwk.RSAKey
com.nimbusds.jose.JWSAlgorithm
com.nimbusds.jose.JWSHeader
com.nimbusds.jose.JWSHeader.Builder
com.nimbusds.jose.JWSObject
com.nimbusds.jose.JWSSigner
com.nimbusds.jose.JWTClaimsSet
com.nimbusds.jose.JWTClaimsSet.Builder
com.nimbusds.jose.JWTHeader
com.nimbusds.jose.JWTHeader.Builder
com.nimbusds.jose.Payload
com.nimbusds.jose.PlainObject
com.nimbusds.jose.util.X509CertUtils
com.nimbusds.jwt.EncryptedJWT
com.nimbusds.jwt.JWTClaimsSet
com.nimbusds.jwt.JWTClaimsSet.Builder
com.nimbusds.jwt.PlainJWT
com.nimbusds.jwt.SignedJWT
com.sun.org.apache.xerces.internal.dom.DocumentImpl
com.sun.org.apache.xerces.internal.dom.ElementImpl
groovy.json.JsonBuilder
groovy.json.JsonOutput
groovy.json.JsonSlurper
groovy.lang.Closure
groovy.lang.GString
groovy.time.TimeCategory
groovy.transform.Field
groovy.util.Node
groovy.util.NodeList
groovy.util.slurpersupport.GPathResult
groovy.util.XmlParser
groovy.util.XmlSlurper
groovy.xml.MarkupBuilder
groovy.xml.XmlUtil
groovyx.net.http.ContentType
groovyx.net.http.HttpResponseException
groovyx.net.http.Method
java.io.ByteArrayInputStream
java.io.ByteArrayOutputStream
java.io.OutputStream
java.io.StringReader
java.io.StringWriter
java.lang.Boolean
java.lang.Byte
java.lang.Character
java.lang.CharSequence
java.lang.Double
java.lang.Exception
java.lang.Float
java.lang.Integer
java.lang.Long
java.lang.Math
java.lang.Number
java.lang.Object
java.lang.Short
java.lang.String
java.lang.StringBuffer
java.lang.StringBuilder
java.lang.Throwable
java.math.BigDecimal
java.math.BigInteger
java.math.RoundingMode
java.net.URI
java.net.URLDecoder
java.net.URLEncoder
java.security.InvalidKeyException
java.security.MessageDigest
java.security.Signature
java.text.DecimalFormat
java.text.SimpleDateFormat
java.time.Clock
java.time.DayOfWeek
java.time.Duration
java.time.Duration
java.time.format.DateTimeFormatter
java.time.format.DateTimeFormatterBuilder
java.time.Instant
java.time.LocalDate
java.time.LocalDateTime
java.time.LocalDateTime
java.time.LocalTime
java.time.Month
java.time.MonthDay
java.time.OffsetDateTime
java.time.OffsetTime
java.time.Period
java.time.Year
java.time.YearMonth
java.time.ZonedDateTime
java.time.ZoneId
java.time.ZoneOffset
java.util.ArrayList
java.util.Calendar
java.util.Collection
java.util.Collections
java.util.concurrent.ConcurrentHashMap
java.util.concurrent.ConcurrentLinkedQueue
java.util.concurrent.CopyOnWriteArrayList
java.util.concurrent.Semaphore
java.util.concurrent.SynchronousQueue
java.util.concurrent.TimeUnit
java.util.Date
java.util.GregorianCalendar
java.util.HashMap
java.util.HashMap.Entry
java.util.HashMap.KeyIterator
java.util.HashMap.KeySet
java.util.HashMap.Values
java.util.HashSet
java.util.LinkedHashMap
java.util.LinkedHashMap.Entry
java.util.LinkedHashSet
java.util.LinkedList
java.util.List
java.util.Map
java.util.Random
java.util.RandomAccessSubList
java.util.regex.Matcher
java.util.regex.Pattern
java.util.Set
java.util.SubList
java.util.TimeZone
java.util.TreeMap
java.util.TreeMap.Entry
java.util.TreeMap.KeySet
java.util.TreeMap.Values
java.util.TreeSet
java.util.UUID
java.util.zip.DataFormatException
java.util.zip.Deflater
java.util.zip.DeflaterInputStream
java.util.zip.DeflaterOutputStream
java.util.zip.GZIPInputStream
java.util.zip.GZIPOutputStream
java.util.zip.Inflater
java.util.zip.InflaterInputStream
java.util.zip.InflaterOutputStream
java.util.zip.ZipError
java.util.zip.ZipException
java.util.zip.ZipInputStream
java.util.zip.ZipOutputStream
javax.crypto.Cipher
javax.crypto.Mac
javax.crypto.spec.IvParameterSpec
javax.crypto.spec.SecretKeySpec
javax.jmdns.JmDNS
javax.xml.XPath
javax.xml.XPathConstants
javax.xml.XPathExpressionImpl
javax.xml.XPathFactory
javax.xml.XPathFactoryImpl
javax.xml.XPathImpl
org.apache.commons.codec.binary.Base64
org.apache.commons.lang3.time.DateUtils
org.apache.xerces.dom.DocumentImpl
org.apache.xerces.dom.ElementImpl
org.codehaus.groovy.runtime.EncodingGroovyMethods
org.json.JSONArray
org.json.JSONException
org.json.JSONObject
org.json.JSONObject.Null
org.quartz.CronExpression
sun.util.calendar.ZoneInfo

13 Likes

That was fast! Thank you very much.
Lots of useful stuff here that I didn't know about!

3 Likes

You just updated it.... :grinning_face_with_smiling_eyes:

But seriously, thanks for such quick response and for the info.

2 Likes

And as an additional ask, please consider adding

java.util.BitSet

It should be a pretty "safe" class to add and would be helpful when working with bitmapped Z-Wave configuration parameters. I was trying to use this but was blocked -- which prompted my request to find out the allowed libraries.

3 Likes

I'm not sure if this is the best place to post this or not, but I would like to request that the java messagepack library be added.

http://msgpack.org/javadoc/current/overview-summary.html

I wrote a new app: BLE (Beacon) Gateway Manager, and the gateway uses message pack. As a workaround, I'm sending data to Hubitat in JSON, but it makes the BLE gateway run slower. If I could parse incoming messagepack data using this library, that would be great! Requesting all libraries list on this web page, especially the JSON utils.

Thanks in advance.

Can someone provide me a link on where the list of libraries that are supported in Hubitat are? This is very useful information and I couldn't find it anywhere in the main developer documentation page, Developer Documentation | Hubitat Documentation. As I'm looking for the updated list, as this was a bit dated.

1 Like

The list in this thread is the most recent.

Okay, good to know! Thanks for clarifying.

1 Like

Here's the updated list:

java.util.ArrayList
java.lang.Math
java.math.BigDecimal
java.math.BigInteger
java.math.RoundingMode
java.lang.Boolean
java.lang.Byte
java.io.ByteArrayInputStream
java.io.ByteArrayOutputStream
java.util.Calendar
groovy.lang.Closure
java.util.Collection
java.util.Collections
java.util.Date
java.time.Duration
java.time.LocalDateTime
java.text.DecimalFormat
java.lang.Double
java.lang.Float
java.util.GregorianCalendar
java.util.HashMap
java.util.HashMap.Entry
java.util.HashMap.KeyIterator
java.util.HashMap.KeySet
java.util.HashMap.Values
java.util.HashSet
java.lang.Integer
groovy.json.JsonBuilder
java.util.LinkedHashMap
java.util.LinkedHashMap.Entry
java.util.LinkedHashSet
java.util.LinkedList
java.util.List
java.lang.Long
java.util.Map
java.util.Map$Entry
groovy.xml.MarkupBuilder
java.util.Random
java.util.Set
java.lang.Short
java.text.SimpleDateFormat
java.lang.String
java.lang.StringBuilder
java.lang.CharSequence
java.lang.Number
java.lang.Character
com.hubitat.app.DeviceWrapper
com.hubitat.app.ChildDeviceWrapper
com.hubitat.app.DeviceWrapperList
com.hubitat.app.EventSubscriptionWrapper
com.hubitat.app.InstalledAppWrapper
com.hubitat.app.ParentDeviceWrapper
com.hubitat.hub.domain.State
com.hubitat.hub.domain.Event
com.hubitat.hub.domain.Hub
com.hubitat.hub.domain.Location
java.io.StringReader
java.io.StringWriter
java.util.SubList
groovy.time.TimeCategory
groovy.lang.GString
java.util.TimeZone
java.util.TreeMap
java.util.TreeMap.Entry
java.util.TreeMap.KeySet
java.util.TreeMap.Values
java.util.TreeSet
java.util.regex.Matcher
java.util.regex.Pattern
java.net.URLDecoder
java.net.URLEncoder
java.util.UUID
java.util.BitSet
javax.xml.XPath
javax.xml.XPathConstants
javax.xml.XPathExpressionImpl
javax.xml.XPathFactory
javax.xml.XPathFactoryImpl
javax.xml.XPathImpl
sun.util.calendar.ZoneInfo
com.sun.org.apache.xerces.internal.dom.DocumentImpl
com.sun.org.apache.xerces.internal.dom.ElementImpl
groovy.json.JsonOutput
groovy.json.JsonSlurper
groovy.util.Node
groovy.util.NodeList
groovy.util.XmlParser
groovy.util.XmlSlurper
groovy.xml.XmlUtil
java.net.URI
java.util.RandomAccessSubList
org.apache.commons.codec.binary.Base64
org.apache.xerces.dom.DocumentImpl
org.apache.xerces.dom.ElementImpl
org.codehaus.groovy.runtime.EncodingGroovyMethods
org.json.JSONArray
org.json.JSONException
org.json.JSONObject
org.json.JSONObject.Null
su.litvak.chromecast.api.v2.ChromeCasts
java.security.MessageDigest
javax.jmdns.JmDNS
java.lang.Exception
java.lang.Throwable
groovyx.net.http.HttpResponseException
groovyx.net.http.Method
groovyx.net.http.ContentType
java.lang.Object
java.lang.StringBuffer
java.io.OutputStream
groovy.transform.Field
groovy.transform.CompileStatic
com.hubitat.zigbee.DataType
javax.crypto.Mac
javax.crypto.spec.SecretKeySpec
java.security.InvalidKeyException
java.security.Signature
java.security.PrivateKey
java.security.KeyFactory
java.security.spec.PKCS8EncodedKeySpec
javax.crypto.spec.IvParameterSpec
javax.crypto.Cipher
com.google.common.util.concurrent.Striped
java.util.concurrent.Semaphore
java.util.concurrent.TimeUnit
java.util.concurrent.CopyOnWriteArrayList
java.util.concurrent.ConcurrentLinkedQueue
java.util.concurrent.ConcurrentHashMap
java.util.concurrent.SynchronousQueue
java.util.concurrent.atomic.AtomicInteger
java.util.concurrent.atomic.AtomicIntegerArray
org.quartz.CronExpression
org.apache.commons.lang3.time.DateUtils
java.time.Clock
java.time.Duration
java.time.Instant
java.time.LocalDate
java.time.LocalDateTime
java.time.LocalTime
java.time.MonthDay
java.time.OffsetDateTime
java.time.OffsetTime
java.time.Period
java.time.Year
java.time.YearMonth
java.time.ZonedDateTime
java.time.ZoneId
java.time.ZoneOffset
java.time.DayOfWeek
java.time.Month
java.time.format.DateTimeFormatter
java.time.format.DateTimeFormatterBuilder
java.time.temporal.TemporalAdjusters
java.util.zip.Deflater
java.util.zip.Inflater
java.util.zip.DeflaterInputStream
java.util.zip.DeflaterOutputStream
java.util.zip.GZIPInputStream
java.util.zip.GZIPOutputStream
java.util.zip.InflaterInputStream
java.util.zip.InflaterOutputStream
java.util.zip.ZipInputStream
java.util.zip.ZipOutputStream
java.util.zip.DataFormatException
java.util.zip.ZipException
java.util.zip.ZipError
com.nimbusds.jose.PlainObject
com.nimbusds.jose.JWSObject
com.nimbusds.jose.Payload
com.nimbusds.jose.JWEObject
com.nimbusds.jose.JWEHeader
com.nimbusds.jose.JOSEObjectType
com.nimbusds.jose.JWSAlgorithm
com.nimbusds.jose.JWSSigner
com.nimbusds.jose.JWTHeader
com.nimbusds.jose.JWTHeader$Builder
com.nimbusds.jose.JWTClaimsSet
com.nimbusds.jose.JWTClaimsSet$Builder
com.nimbusds.jose.jwk.RSAKey
com.nimbusds.jose.crypto.RSASSASigner
com.nimbusds.jose.JWSHeader
com.nimbusds.jose.JWSHeader$Builder
com.nimbusds.jose.jwk.JWK
com.nimbusds.jose.util.X509CertUtils
com.nimbusds.jwt.PlainJWT
com.nimbusds.jwt.SignedJWT
com.nimbusds.jwt.EncryptedJWT
com.nimbusds.jwt.JWTClaimsSet
com.nimbusds.jwt.JWTClaimsSet$Builder

8 Likes

I've added this page to the docs if we wanted one spot to keep it up-to-date:

I've started with the updated list provided above. :slight_smile:

8 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.