                       (resolve config-type)
                       String)]
     (when-not doc-string
-      (throw (Exception. "defconfig doc-string is required")))
-    (when (nil? default)
-      (throw (Exception. "defconfig default is required")))
+      (throw (Exception. "defconfig :doc-string is required")))
+    (when (not (contains? options :default))
+      (throw (Exception. "defconfig :default is required")))
     (when (and (nil? parser) config-type (nil? (type->parser config-type)))
       (throw (Exception. (str "Unrecognized defconfig type: " config-type))))
 

            [clojure.set :as set]
            [cmr.common.log :as log :refer (debug info warn error)]))

(def ^:private runtime-config-values
  "An atom containing a map of explicitly set config values."
  (atom {}))

(defn set-config-value!

           env-value
           parsed-default)))))

(defonce ^{:doc "This contains information about all of the
                 configuration parameters that have been added using
                 defconfig. It is used for allowing documentation
                 generation of configuration parameters. It's a map of
                 namespaces to configuration keys to options maps."}
  configs-atom
  (atom {}))

(defn register-config
