Would like talk this one through so I can make a nice clear bug report. First up where do I make bug reports for geomesa? GitHub or bugzilla :)
The integration problem is with the implementation of CoverageFormat and GeoMesaCoverageFormat. Currently they will accept *any* provided content - this breaks GeoServer import (since it uses this method to try and determine which format is responsible for loading a file).
override def accepts(input: AnyRef) = true
override def accepts(source: AnyRef, hints: Hints) = true
Up a few lines I think I can see File and Path being accepted:
override def getReader(source: AnyRef, hints: Hints) = source match {
case file: File => new CoverageReader(file.getPath)
case path: String => new CoverageReader(path)
case unk => throw new Exception(s"unexpected data type for reader source: ${Option(unk).map(_.getClass.getName).getOrElse("null")}")
}
Digging into CoverageReader there is logic to process a URL and extract credentials. If we can reproduce this same logic in the accepts method (and reject file references to a GeoTIFF) then GeoServer can continue to function.