@Override
    public VoidOutput run(RunContext runContext) throws Exception {
        String renderedNamespace = runContext.render(this.namespace);

        String renderedKey = runContext.render(this.key);
        Object renderedValue = runContext.renderTyped(this.value);

        KVStore kvStore = runContext.namespaceKv(renderedNamespace);
        kvStore.put(renderedKey, new KVValueAndMetadata(new KVMetadata(ttl), renderedValue), this.overwrite);

        return null;
    }
@Test
    void shouldSetKVGivenChildNamespace() throws Exception {
        // Given
        RunContext runContext = this.runContextFactory.of(Map.of(
            "flow", Map.of("namespace", "io.kestra.test"),
            "inputs", Map.of(
                "key", TEST_KEY,
                "value", "test-value"
            )
        ));

        Set set = Set.builder()
            .id(Set.class.getSimpleName())
            .type(Set.class.getName())
            .key("{{ inputs.key }}")
            .value("{{ inputs.value }}")
            .namespace("io.kestra.test.unit")
            .build();
        // When
        set.run(runContext);

        // then
        final KVStore kv = runContext.namespaceKv("io.kestra.test.unit");
        assertThat(kv.getValue(TEST_KEY), is(Optional.of(new KVValue("test-value"))));
        assertThat(kv.list().getFirst().expirationDate(), nullValue());
    }