Moved `is_public` file field to virtual.
Added more test coverage (mostly storage related).