1. A method, comprising: intercepting, with a filter program, a request from an application or file system user interface to write to a source file in a remote file system for a remote storage system accessible over a network; determining, by the filter program, whether a retention rule is provided for the source file in response to the write request; in response to determining that one retention rule is provided for the source file, generating, by the filter program, a versioned file name, wherein a versioned file comprises the source file at a point-in-time; transmitting, by the filter program, a command to the remote file system to copy the source file data to a versioned file having the generated versioned file name; applying, by the filter program, a function to a source file name of the source file to determine a retention index file, wherein the determined retention index file maintains names of versioned files for the source file to which the function is applied; adding, by the filter program, the generated versioned file name to the determined retention index file indicating versioned files for the source file in the remote file system; determining, by the filter program, from the retention index versioned files for the source file to purge in response to determining that the retention rule indicates a maximum number of versioned files for the source file and the versioned files for the source file do not satisfy the retention rule; determining, by the filter program, from the retention index versioned files for the source file to purge in response to determining that the retention rule indicates a time limit of versioned files for the source file and the versioned files for the source file do not satisfy the retention rule; transmitting, by the filter program, a command to the remote file system to purge the determined versioned files at the remote storage system; and transmitting, by the filter program, the write to the source file to the remote file system in response to determining that no retention rule is provided for the source file, wherein the remote file system applies the write to the source file at the remote storage system.