An error type that encapsulates the different errors that can occur fetching configuration values.
-
Variant Cases
-
-
-
upstream: string
-
This indicates an error from an "upstream" config source.
-As this could be almost _anything_ (such as Vault, Kubernetes ConfigMaps, KeyValue buckets, etc),
-the error message is a string.
-
-
-
io: string
-
This indicates an error from an I/O operation.
-As this could be almost _anything_ (such as a file read, network connection, etc),
-the error message is a string.
-Depending on how this ends up being consumed,
-we may consider moving this to use the `wasi:io/error` type instead.
-For simplicity right now in supporting multiple implementations, it is being left as a string.
-
-
+
An immutable configuration store.
Functions
get: func
Gets a configuration value of type string associated with the key.
-
The value is returned as an option<string>. If the key is not found,
-Ok(none) is returned. If an error occurs, an Err(error) is returned.
+
Returns none if the key does not exist.
+
This always returns the same value for any given key. Configuration
+data does not change over the lifetime of the component instance.
diff --git a/wit/store.wit b/wit/store.wit
index 794379a..54491ac 100644
--- a/wit/store.wit
+++ b/wit/store.wit
@@ -1,30 +1,19 @@
+/// An immutable configuration store.
interface store {
- /// An error type that encapsulates the different errors that can occur fetching configuration values.
- variant error {
- /// This indicates an error from an "upstream" config source.
- /// As this could be almost _anything_ (such as Vault, Kubernetes ConfigMaps, KeyValue buckets, etc),
- /// the error message is a string.
- upstream(string),
- /// This indicates an error from an I/O operation.
- /// As this could be almost _anything_ (such as a file read, network connection, etc),
- /// the error message is a string.
- /// Depending on how this ends up being consumed,
- /// we may consider moving this to use the `wasi:io/error` type instead.
- /// For simplicity right now in supporting multiple implementations, it is being left as a string.
- io(string),
- }
-
/// Gets a configuration value of type `string` associated with the `key`.
- ///
- /// The value is returned as an `option`. If the key is not found,
- /// `Ok(none)` is returned. If an error occurs, an `Err(error)` is returned.
+ ///
+ /// Returns `none` if the key does not exist.
+ ///
+ /// This always returns the same value for any given key. Configuration
+ /// data does not change over the lifetime of the component instance.
get: func(
/// A string key to fetch
key: string
- ) -> result