Repository: mlflow/mlflow

Issue:
[FR] Add more file formats to artifact section UI.
### Willingness to contribute

Yes. I would be willing to contribute this feature with guidance from the MLflow community.

### Proposal Summary

With this feature there are files that could be check in the browser itself, like this [`yolo.cfg`](https://raw.githubusercontent.com/AlexeyAB/darknet/master/cfg/yolov4.cfg) files, which are just plain text but with a different format.

I guess many other files can benefit from this feature and it will be faster to check those kind of files because you will not need to download them.

### Motivation

> #### What is the use case for this feature?
Be able to see more files in the Artifact section without downloading them.

> #### Why is this use case valuable to support for MLflow users in general?
With this feature you will be able to see the file in the browser instead of downloading it and then check it out in a text editor.

> #### Why is this use case valuable to support for your project(s) or organization?
I use MLflow to see models trained with YOLO networks and the artifact logged into the server are the `weights` and `cfg`, so this will be useful if I want to see the `cfg` file without downloading it.

> #### Why is it currently difficult to achieve this use case?
There isn't a way to check files that are unsupported even if they are plain text files without the `.txt` extension.

### Details

I guess this could easily done by including more file formats to the Artifact show section, or at least check if the file is readable by the browser.

### What component(s) does this bug affect?

- [X] `area/artifacts`: Artifact stores and artifact logging
- [ ] `area/build`: Build and test infrastructure for MLflow
- [ ] `area/docs`: MLflow documentation pages
- [ ] `area/examples`: Example code
- [ ] `area/model-registry`: Model Registry service, APIs, and the fluent client calls for Model Registry
- [ ] `area/models`: MLmodel format, model serialization/deserialization, flavors
- [ ] `area/projects`: MLproject format, project running backends
- [ ] `area/scoring`: MLflow Model server, model deployment tools, Spark UDFs
- [ ] `area/server-infra`: MLflow Tracking server backend
- [ ] `area/tracking`: Tracking Service, tracking client APIs, autologging

### What interface(s) does this bug affect?

- [x] `area/uiux`: Front-end, user experience, plotting, JavaScript, JavaScript dev server
- [ ] `area/docker`: Docker use across MLflow's components, such as MLflow Projects and MLflow Models
- [ ] `area/sqlalchemy`: Use of SQLAlchemy in the Tracking Service or Model Registry
- [ ] `area/windows`: Windows support

### What language(s) does this bug affect?

- [ ] `language/r`: R APIs and clients
- [ ] `language/java`: Java APIs and clients
- [ ] `language/new`: Proposals for new client languages

### What integration(s) does this bug affect?

- [ ] `integrations/azure`: Azure and Azure ML integrations
- [ ] `integrations/sagemaker`: SageMaker integrations
- [ ] `integrations/databricks`: Databricks integrations


Discussion:

Resolving patch:
diff --git a/mlflow/server/handlers.py b/mlflow/server/handlers.py
--- a/mlflow/server/handlers.py
+++ b/mlflow/server/handlers.py
@@ -464,11 +464,23 @@ def wrapper(*args, **kwargs):
 _TEXT_EXTENSIONS = [
     "txt",
     "log",
+    "err",
+    "cfg",
+    "conf",
+    "cnf",
+    "cf",
+    "ini",
+    "properties",
+    "prop",
+    "hocon",
+    "toml",
     "yaml",
     "yml",
+    "xml",
     "json",
     "js",
     "py",
+    "py3",
     "csv",
     "tsv",
     "md",


Test patch: