fix(ingest): make sure we ingest content as str not bytes

this will prevent errors with replacement rules which don't work on bytes content being unicode