Are edge dictionaries that have been made through the API, persistant through service version changes?

If I create an edge dictionary that my service VCL uses, will that dictionary still remain and intractable after I’ve made a change to my service VCL and increased the version by activating it? If yes, then I have no further question, but if no, is there anyway to have it persist between versions? i.e. I don’t want to have to re-add the edge dictionary with all its contents on each version increase

I see this description, but I’m not sure if that still answers my question:

Some elements of service configuration are not part of the immutable definition of a service version. When these are updated, the service is immediately affected, without the need to clone and activate a new version of the service. For example, edge dictionaries are attached to a service as part of a version, but the entries in the dictionary are versionless.

Does this mean that if I’m doing this in my existing VLC (with my_dict and it’s content being created via an API):

set beresp.value = std.atoi(table.lookup(my_dict, lookup_value));

and I make some unrelated change to the VCL service and update/activate and increase its version, will that same table lookup (my_dict) still be there and work as before, and could assume the same table values as before are still there?

Oh I see, so it seems once I create a service and attach a dictionary container to it, then on subsequent cloning of that service config, the dictionary container will continue to be copied over (cloned) along with the service. So I won’t have to re-create the dictionary (and it’s content) every-time I clone a new version and activate one of my services.

That seems to have answered my question.

That’s not quite accurate; the attachment between the dictionary and the service is cloned, but not the dictionary itself. New versions of the service won’t have distinct copies of the dictionary; if two versions of the service are running and the dictionary content is modified then that modification will be visible to both versions of the service (note the statement “entries in the dictionary are versionless”).

2 Likes