arize-phoenix 12.3.0__py3-none-any.whl → 12.5.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of arize-phoenix might be problematic. Click here for more details.

Files changed (73) hide show
  1. {arize_phoenix-12.3.0.dist-info → arize_phoenix-12.5.0.dist-info}/METADATA +2 -1
  2. {arize_phoenix-12.3.0.dist-info → arize_phoenix-12.5.0.dist-info}/RECORD +73 -72
  3. phoenix/auth.py +27 -2
  4. phoenix/config.py +302 -53
  5. phoenix/db/README.md +546 -28
  6. phoenix/db/models.py +3 -3
  7. phoenix/server/api/auth.py +9 -0
  8. phoenix/server/api/context.py +2 -0
  9. phoenix/server/api/dataloaders/__init__.py +2 -0
  10. phoenix/server/api/dataloaders/dataset_dataset_splits.py +52 -0
  11. phoenix/server/api/input_types/ProjectSessionSort.py +158 -1
  12. phoenix/server/api/input_types/SpanSort.py +2 -1
  13. phoenix/server/api/input_types/UserRoleInput.py +1 -0
  14. phoenix/server/api/mutations/annotation_config_mutations.py +6 -6
  15. phoenix/server/api/mutations/api_key_mutations.py +13 -5
  16. phoenix/server/api/mutations/chat_mutations.py +3 -3
  17. phoenix/server/api/mutations/dataset_label_mutations.py +6 -6
  18. phoenix/server/api/mutations/dataset_mutations.py +8 -8
  19. phoenix/server/api/mutations/dataset_split_mutations.py +7 -7
  20. phoenix/server/api/mutations/experiment_mutations.py +2 -2
  21. phoenix/server/api/mutations/export_events_mutations.py +3 -3
  22. phoenix/server/api/mutations/model_mutations.py +4 -4
  23. phoenix/server/api/mutations/project_mutations.py +4 -4
  24. phoenix/server/api/mutations/project_session_annotations_mutations.py +4 -4
  25. phoenix/server/api/mutations/project_trace_retention_policy_mutations.py +8 -4
  26. phoenix/server/api/mutations/prompt_label_mutations.py +7 -7
  27. phoenix/server/api/mutations/prompt_mutations.py +7 -7
  28. phoenix/server/api/mutations/prompt_version_tag_mutations.py +3 -3
  29. phoenix/server/api/mutations/span_annotations_mutations.py +5 -5
  30. phoenix/server/api/mutations/trace_annotations_mutations.py +4 -4
  31. phoenix/server/api/mutations/trace_mutations.py +3 -3
  32. phoenix/server/api/mutations/user_mutations.py +8 -5
  33. phoenix/server/api/routers/auth.py +23 -32
  34. phoenix/server/api/routers/oauth2.py +213 -24
  35. phoenix/server/api/routers/v1/__init__.py +18 -4
  36. phoenix/server/api/routers/v1/annotation_configs.py +19 -30
  37. phoenix/server/api/routers/v1/annotations.py +21 -22
  38. phoenix/server/api/routers/v1/datasets.py +86 -64
  39. phoenix/server/api/routers/v1/documents.py +2 -3
  40. phoenix/server/api/routers/v1/evaluations.py +12 -24
  41. phoenix/server/api/routers/v1/experiment_evaluations.py +2 -3
  42. phoenix/server/api/routers/v1/experiment_runs.py +16 -11
  43. phoenix/server/api/routers/v1/experiments.py +57 -22
  44. phoenix/server/api/routers/v1/projects.py +16 -50
  45. phoenix/server/api/routers/v1/prompts.py +30 -31
  46. phoenix/server/api/routers/v1/sessions.py +2 -5
  47. phoenix/server/api/routers/v1/spans.py +35 -26
  48. phoenix/server/api/routers/v1/traces.py +11 -19
  49. phoenix/server/api/routers/v1/users.py +13 -29
  50. phoenix/server/api/routers/v1/utils.py +3 -7
  51. phoenix/server/api/subscriptions.py +3 -3
  52. phoenix/server/api/types/Dataset.py +95 -6
  53. phoenix/server/api/types/Project.py +24 -68
  54. phoenix/server/app.py +3 -2
  55. phoenix/server/authorization.py +5 -4
  56. phoenix/server/bearer_auth.py +13 -5
  57. phoenix/server/jwt_store.py +8 -6
  58. phoenix/server/oauth2.py +172 -5
  59. phoenix/server/static/.vite/manifest.json +39 -39
  60. phoenix/server/static/assets/{components-Bs8eJEpU.js → components-cwdYEs7B.js} +501 -404
  61. phoenix/server/static/assets/{index-C6WEu5UP.js → index-Dc0vD1Rn.js} +1 -1
  62. phoenix/server/static/assets/{pages-D-n2pkoG.js → pages-BDkB3a_a.js} +577 -533
  63. phoenix/server/static/assets/{vendor-D2eEI-6h.js → vendor-Ce6GTAin.js} +1 -1
  64. phoenix/server/static/assets/{vendor-arizeai-kfOei7nf.js → vendor-arizeai-CSF-1Kc5.js} +1 -1
  65. phoenix/server/static/assets/{vendor-codemirror-1bq_t1Ec.js → vendor-codemirror-Bv8J_7an.js} +3 -3
  66. phoenix/server/static/assets/{vendor-recharts-DQ4xfrf4.js → vendor-recharts-DcLgzI7g.js} +1 -1
  67. phoenix/server/static/assets/{vendor-shiki-GGmcIQxA.js → vendor-shiki-BF8rh_7m.js} +1 -1
  68. phoenix/trace/attributes.py +80 -13
  69. phoenix/version.py +1 -1
  70. {arize_phoenix-12.3.0.dist-info → arize_phoenix-12.5.0.dist-info}/WHEEL +0 -0
  71. {arize_phoenix-12.3.0.dist-info → arize_phoenix-12.5.0.dist-info}/entry_points.txt +0 -0
  72. {arize_phoenix-12.3.0.dist-info → arize_phoenix-12.5.0.dist-info}/licenses/IP_NOTICE +0 -0
  73. {arize_phoenix-12.3.0.dist-info → arize_phoenix-12.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arize-phoenix
3
- Version: 12.3.0
3
+ Version: 12.5.0
4
4
  Summary: AI Observability and Evaluation
5
5
  Project-URL: Documentation, https://arize.com/docs/phoenix/
6
6
  Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
@@ -31,6 +31,7 @@ Requires-Dist: grpc-interceptor
31
31
  Requires-Dist: grpcio
32
32
  Requires-Dist: httpx
33
33
  Requires-Dist: jinja2
34
+ Requires-Dist: jmespath
34
35
  Requires-Dist: numpy!=2.0.0
35
36
  Requires-Dist: openinference-instrumentation>=0.1.32
36
37
  Requires-Dist: openinference-semantic-conventions>=0.1.20
@@ -1,18 +1,18 @@
1
1
  phoenix/__init__.py,sha256=Sgb4r2MLoY2BbC9Caky5C0bwnOyiVOMHly2sRItmg3Q,5555
2
- phoenix/auth.py,sha256=9rscOefuxy5VPcb6MlOYenuy3gDd5l7RxknONovGslE,11342
3
- phoenix/config.py,sha256=KCtx65JaNoVfRGilNOJqnjLm7YOxHkV-T1SCAoQZA2M,64751
2
+ phoenix/auth.py,sha256=bxYtmtUxCQnCPfIO88PzdNw0NlF50tvgl9yyrCl2skg,12298
3
+ phoenix/config.py,sha256=EQYzCeib7o-63D2wSK8qTqdrYNEhJaUL5Axo9GJoErs,77844
4
4
  phoenix/datetime_utils.py,sha256=pRD-nzxXYKlMWNtd3r2tKGKfPFhwuJhfOAtlGLVAO60,8784
5
5
  phoenix/exceptions.py,sha256=n2L2KKuecrdflB9MsCdAYCiSEvGJptIsfRkXMoJle7A,169
6
6
  phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
7
7
  phoenix/services.py,sha256=ngkyKGVatX3cO2WJdo2hKdaVKP-xJCMvqthvga6kJss,5196
8
8
  phoenix/settings.py,sha256=2kHfT3BNOVd4dAO1bq-syEQbHSG8oX2-7NhOwK2QREk,896
9
- phoenix/version.py,sha256=joovLOjrezzyo7EzpCd_GmtqwFzRWnqjgTP-wu-ic5w,23
9
+ phoenix/version.py,sha256=zMX_FM3cVT5krGMLJ7wIdD6aNccjxPXzb1MtTO9uB1g,23
10
10
  phoenix/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  phoenix/core/embedding_dimension.py,sha256=zKGbcvwOXgLf-yrJBpQyKtd-LEOPRKHnUToyAU8Owis,87
12
12
  phoenix/core/model.py,sha256=qBFraOtmwCCnWJltKNP18DDG0mULXigytlFsa6YOz6k,4837
13
13
  phoenix/core/model_schema.py,sha256=9JChtyXtid0GzEYImDcNA8Ppk7jmCO5xC5dBIUMNYjE,50504
14
14
  phoenix/core/model_schema_adapter.py,sha256=y1RXPYGt2HLTGpkB2X-XVQvRJXYGmJ9EL4m7TpOMvj0,8456
15
- phoenix/db/README.md,sha256=51cZyk1XzkUz0jn1cIRkgrZW3LeQZmhWCIXUMWjWO90,10905
15
+ phoenix/db/README.md,sha256=_5LeQdk5pFJIDqkdRqA4SZZTjeVAMuGu6iylgFkF37E,22663
16
16
  phoenix/db/__init__.py,sha256=pDjEFXukHmJBM-1D8RjmXkvLsz85YWNxMQczt81ec3A,118
17
17
  phoenix/db/alembic.ini,sha256=GIS6HpHaKaJbbuahZg1Rc1D2_QqyCkV9r58wdARGf6w,3262
18
18
  phoenix/db/bulk_inserter.py,sha256=8_mTxc-6RDZXngC3Xe4fu-zrFwf7gkx2a0UDYPqHc0g,14186
@@ -22,7 +22,7 @@ phoenix/db/enums.py,sha256=w3O5YuJEEzVTwVDZb8b2UUFhU8yK_GosF081VVrrno0,188
22
22
  phoenix/db/facilitator.py,sha256=4MW9ZQOHEJAeG8KUeiWbp-WBWrtIe5FWPohvGO8zqiE,20255
23
23
  phoenix/db/helpers.py,sha256=Inc3g_F7QtiTe-AW11j5EohUJVvDsHohyzIgObimjVI,21514
24
24
  phoenix/db/migrate.py,sha256=oUrXH8yEbcpL4eh09aSCuUiSrhFli0eT5D_j4ZmYChY,2797
25
- phoenix/db/models.py,sha256=ojmInqTNCm0GTv8sNXzUJBL7eBpcy-5NzqPeaZvlnpw,71269
25
+ phoenix/db/models.py,sha256=o14p35viN3iM9la1kFqVpY5RtJ8w5pszwm01ToOmRZk,71239
26
26
  phoenix/db/pg_config.py,sha256=h6mB7qF7t4Zk6VGvAiyefHGVu74o-yJynaWzeE39k9Y,6001
27
27
  phoenix/db/insertion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  phoenix/db/insertion/constants.py,sha256=8wifm7X-1XvroZ__R2Gc96NsgLhTDn0zXl4lehlXtcA,70
@@ -102,15 +102,15 @@ phoenix/pointcloud/pointcloud.py,sha256=SN_1wXZcwKrtSnHGZLDZGx71orqE1WyVF7E-D58d
102
102
  phoenix/pointcloud/projectors.py,sha256=TQgwc9cJDjJkin1WZyZzgl3HsYrLLiyWD7Czy4jNW3U,1088
103
103
  phoenix/pointcloud/umap_parameters.py,sha256=db_WEPoamuWtopZx7tQfAXPnoE0MS8FkAV0_ThjEx_Q,1735
104
104
  phoenix/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- phoenix/server/app.py,sha256=Nkm7xwzed5H_ArLWiqn4Id5ERxB-k-1sJSsvvtWw4Pk,50868
106
- phoenix/server/authorization.py,sha256=OxROn7ibpKtCTrcgDkzWuNxVaQcSQ8MAx7zbjZiliK0,3201
107
- phoenix/server/bearer_auth.py,sha256=f4v4W94KyTdGGCPsK1tXOe0vouPuvanAEa03XSdCvPE,6650
105
+ phoenix/server/app.py,sha256=6j8bSoAaH5rI4ByGXxFjMfzQYrVDOK4TpXcqYSEMprA,50910
106
+ phoenix/server/authorization.py,sha256=Ws1bNyWLlTeRODcT6zNy8C5SB5WMROXrMYqzCDxTxZo,3114
107
+ phoenix/server/bearer_auth.py,sha256=IUL2b5O2J2oc593cy_S_SM0mCEL34r6Z9Zgia7CcS4k,6877
108
108
  phoenix/server/dml_event.py,sha256=HgUsIkzyXxCGasjnrqubegWbNaAcAgjrtWrKc3aRwxA,3245
109
109
  phoenix/server/dml_event_handler.py,sha256=71_iPcHiJ4E-8Z7sGL2j0vx_RpkmcMVEUFIBsWrdp-E,8483
110
110
  phoenix/server/grpc_server.py,sha256=THDdkMKXQEC3gZjFG2nUgXHFbUnWsRHgFM9oh5WtAX0,4758
111
- phoenix/server/jwt_store.py,sha256=B6uVildN_dQDTG_-aHHvuVSI7wIVK1yvED-_y6se2GU,16905
111
+ phoenix/server/jwt_store.py,sha256=a6WGmIKtKveByW9_JeSMmmYQO6JvfTudtpYyBYbsF14,17075
112
112
  phoenix/server/main.py,sha256=UBwxrQIEE7ci-SbE6GAlRYmbMHooI6JYG6sG-UpBFFs,18905
113
- phoenix/server/oauth2.py,sha256=l6jugh-lHq0h7h7TBzvk6oTrHKXe1aX9-j7UAat5Eac,3224
113
+ phoenix/server/oauth2.py,sha256=faz8N-OX0LmgIguvRhOmCA5IPvsYjJ6fYcGpIfqgBT8,10012
114
114
  phoenix/server/prometheus.py,sha256=ovh6Hrw2mLUC6KddGydT0_lv-yK0upV9mL-T9UjqlcE,9373
115
115
  phoenix/server/rate_limiters.py,sha256=cFc73D2NaxqNZZDbwfIDw4So-fRVOJPBtqxOZ8Qky_s,7155
116
116
  phoenix/server/retention.py,sha256=MQe1FWuc_NxhqgIq5q2hfFhWT8ddAmpppgI74xYEQ6c,3064
@@ -121,20 +121,21 @@ phoenix/server/types.py,sha256=j8erl9iRNaR8t0DCQG84-uDVbHy9Qnm7T2EuTtDNNsU,8013
121
121
  phoenix/server/utils.py,sha256=zTgY07W9GOpAFvIIPVBfXAGQb6kwGla2lhj1VGTCeIU,3057
122
122
  phoenix/server/api/README.md,sha256=Pyq1PLPgTzXAswrfIhGXrjI3Skq8it2jTVnanT6Ba4Q,1162
123
123
  phoenix/server/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
- phoenix/server/api/auth.py,sha256=AyYhnZIbY9ALVjg2K6aC2UXSa3Pva5GVDBXyaZ3nD3o,2749
124
+ phoenix/server/api/auth.py,sha256=lDj289lNGY0-HqzlNyvWwPXjF3qHiSsOuvCJNIAbU0k,3072
125
125
  phoenix/server/api/auth_messages.py,sha256=15oqogBNS2BgJLLDecfXz62G9LdiOAEyzPv6jX9BxYE,1912
126
- phoenix/server/api/context.py,sha256=rdjGb0Ce-XBFVF5lj-lA8VoyKmrrPpLdU_BKT0qhFyQ,10450
126
+ phoenix/server/api/context.py,sha256=c5xVGdGAoysNOoAqGNUXtn2wOFcKbERPJ7-26HIxbpI,10545
127
127
  phoenix/server/api/exceptions.py,sha256=9gB4nBRNX6k4_fsQZ12yxw6Tw53h_915l06DYK-qkPQ,1442
128
128
  phoenix/server/api/interceptor.py,sha256=ykDnoC_apUd-llVli3m1CW18kNSIgjz2qZ6m5JmPDu8,1294
129
129
  phoenix/server/api/queries.py,sha256=eZ12poXJ08Pla-DIW8v5dS9gWKdIbS-WO0Df-iGbLOg,67341
130
130
  phoenix/server/api/schema.py,sha256=fcs36xQwFF_Qe41_5cWR8wYpDvOrnbcyTeo5WNMbDsA,1702
131
- phoenix/server/api/subscriptions.py,sha256=5J5_B6FUZav4UBzWETdcGNjClZa7-T1d7vxxeQCg63s,26167
131
+ phoenix/server/api/subscriptions.py,sha256=qrLN2p0gYV7tluKSqOsHfWZTB9ZqhjviTqJPjZOHGko,26206
132
132
  phoenix/server/api/utils.py,sha256=quCBRcusc6PUq9tJq7M8PgwFZp7nXgVAxtbw8feribY,833
133
- phoenix/server/api/dataloaders/__init__.py,sha256=yDuF2Ci9ab8a-m3b4q-eVLXo9X3CaFX5SGgpZ35BGHk,8129
133
+ phoenix/server/api/dataloaders/__init__.py,sha256=b2eVMs8ZALHmsu8oJLTIB2gAIRniWUQpZDc6lwketmE,8234
134
134
  phoenix/server/api/dataloaders/annotation_configs_by_project.py,sha256=_Nfiug9o01JimU3Z0LpZJ0uaMCjchXomyt_dYAxPFRY,1178
135
135
  phoenix/server/api/dataloaders/annotation_summaries.py,sha256=0b23-bucBKyL25RWb2QzCNJjQzrq403qMmHKUVD5W4M,14377
136
136
  phoenix/server/api/dataloaders/average_experiment_repeated_run_group_latency.py,sha256=BSNyrwuNadQ16-2g0nGixrB5LyDqlTLeM2bKikyIagY,1860
137
137
  phoenix/server/api/dataloaders/average_experiment_run_latency.py,sha256=_wEcC47zOtLFMYTfyaFWA93TlAVC3kAPZhMnRO-xB24,1809
138
+ phoenix/server/api/dataloaders/dataset_dataset_splits.py,sha256=-I622QubefUY4aap4MsUeC5aDwUeJcJEwEfMKsMg8Zs,1906
138
139
  phoenix/server/api/dataloaders/dataset_example_revisions.py,sha256=MqRBkT3AE6b6A7uucFYfkH86eXMAyYJDFyg3a8tx-GM,4547
139
140
  phoenix/server/api/dataloaders/dataset_example_spans.py,sha256=z_MFquqAcJ9wat7BBp7MVeJ9BYuu2EZEdaog52iWDno,1390
140
141
  phoenix/server/api/dataloaders/dataset_example_splits.py,sha256=u1XVZPvoB6qevuYN0kbKUnCFJsuvwBGsCZV8jfPAmwY,1524
@@ -242,64 +243,64 @@ phoenix/server/api/input_types/PatchDatasetExamplesInput.py,sha256=_uMqkAInhLDvz
242
243
  phoenix/server/api/input_types/PatchDatasetInput.py,sha256=OURtTVY8Z_oFEDtKwT1LCMaOK5D4QYo5TVQ6mDrex-g,328
243
244
  phoenix/server/api/input_types/PerformanceMetricInput.py,sha256=4SG5AymxV2dMeCrK7eREThdt9SuC43irMYZtY-Oq-bg,658
244
245
  phoenix/server/api/input_types/ProjectFilter.py,sha256=w3IimMXcNmMkrQ6h89-Yx6uh21r2wj1jci1nPZEDEhQ,260
245
- phoenix/server/api/input_types/ProjectSessionSort.py,sha256=KZzEtOMpcxtP11brL4fXUAY_RLAK-Ul4luAWwVKnQgY,1043
246
+ phoenix/server/api/input_types/ProjectSessionSort.py,sha256=erUJ1O0i9SmZS5fid6vtFg6rYU_NdL_31Y4ae3avw2I,7178
246
247
  phoenix/server/api/input_types/ProjectSort.py,sha256=ZTT-InFB6NvInDwLuivyHe9PxR5nsmQ8aXCHAPjZm9k,329
247
248
  phoenix/server/api/input_types/PromptFilter.py,sha256=f2F7fDlYRsNJp_rKkmvpgUt9rfgr_e-dyZxuHX8YfkU,256
248
249
  phoenix/server/api/input_types/PromptTemplateOptions.py,sha256=8ZJdH1F9fExcdH9dF8SJ29WycCvtEpK-Z6dZwFO7KgQ,232
249
250
  phoenix/server/api/input_types/PromptVersionInput.py,sha256=6iFWf2Ye9K1dwL1810L-wUTLkMtOIHemJTxar4xF4kw,3911
250
251
  phoenix/server/api/input_types/SpanAnnotationSort.py,sha256=T5pAGzmh4MiJp9JMAzNDByFVTczfw02FH4WFWwFezyI,361
251
- phoenix/server/api/input_types/SpanSort.py,sha256=1AHrqx3HuVKsp9DSaDsQMAyid4Au3kqY38mE9x0nPBU,7552
252
+ phoenix/server/api/input_types/SpanSort.py,sha256=aybgSeuJvCsQf4yRDEDildHgE6aNYq5vnXTynRzD-eY,7612
252
253
  phoenix/server/api/input_types/TimeBinConfig.py,sha256=s4p0SNTGRY6rbHfZhEMwmon5zX85j-DbN06GkapF6jg,516
253
254
  phoenix/server/api/input_types/TimeRange.py,sha256=pwhC2jx6dFIgT0qFfnO68qiJp9-m7Je5QkNscNsuVxA,700
254
255
  phoenix/server/api/input_types/TraceAnnotationSort.py,sha256=BzwiUnMh2VsgQYnhDlbJ6ljHugqIS4YDUlYzvq_tl3o,365
255
256
  phoenix/server/api/input_types/UpdateAnnotationInput.py,sha256=ZhWmu6eQ2jJ9_e99mN_eIe1yB2VG8k3quy6cTyBqDTo,1227
256
- phoenix/server/api/input_types/UserRoleInput.py,sha256=xxhFe0ITZOgRVEJbVem_W6F1Ip_H6xDENdQqMMx-kKE,129
257
+ phoenix/server/api/input_types/UserRoleInput.py,sha256=xowBkijREtDpcc909xXarpxfLhxMC88Xl0bZzZGv6Sw,151
257
258
  phoenix/server/api/input_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
258
259
  phoenix/server/api/mutations/__init__.py,sha256=83V5Ia8ijsajSLo_gzAuHXo4hgDlUGLIUrerxzKKVn8,2385
259
- phoenix/server/api/mutations/annotation_config_mutations.py,sha256=i7NsQhYICcQ-I-tnFjGtVAYc8WVmMBacmRaqHWJ25t4,15433
260
- phoenix/server/api/mutations/api_key_mutations.py,sha256=nfnRjALCaQMi_jIbEPW4G3Dn3tPnmZVU11tpBbBijGA,6242
261
- phoenix/server/api/mutations/chat_mutations.py,sha256=HoO1V_ZvJ_TRIPCftmwyVrD3AaIsznWczOTZB9euO2Q,25306
262
- phoenix/server/api/mutations/dataset_label_mutations.py,sha256=nVw2IaycdscAX2CJ1Jk4icRNvu61hWvb1UeN0sgC9Tk,11582
263
- phoenix/server/api/mutations/dataset_mutations.py,sha256=D7LULYXnQeb7kep_b5SmSEGYxZXVt5U9gvOvwd0aI2E,28033
264
- phoenix/server/api/mutations/dataset_split_mutations.py,sha256=RgFy2i02az-ckGkQ89VljTVnGXsUmr5Hvv7j7QRebQI,17324
265
- phoenix/server/api/mutations/experiment_mutations.py,sha256=p3CoLAa8nFPa3D759Y2A7De_PVJNGOL98mA3HoZBrRQ,3188
266
- phoenix/server/api/mutations/export_events_mutations.py,sha256=xoDnVWC7eA_8wNQP0-oyiHojyUZ0EhVVSrsAnztetC0,3993
267
- phoenix/server/api/mutations/model_mutations.py,sha256=eh-QIKww3EDrDewS3NTWTqnE2bwLJJ5WgRFvSPRksZg,7199
268
- phoenix/server/api/mutations/project_mutations.py,sha256=PQCwODI0VXk9Rllxdar4bNEyaYb1rJiMHXTqol-cFYY,4569
269
- phoenix/server/api/mutations/project_session_annotations_mutations.py,sha256=xeBI8LBB0o9v_yrs09rifjl1o1QppHN0Q4klt4ExbIE,7070
270
- phoenix/server/api/mutations/project_trace_retention_policy_mutations.py,sha256=AqBe8TBxlXdIL56Afs4FIBqkI0bEgf-v9bHlbc-O6VI,9839
271
- phoenix/server/api/mutations/prompt_label_mutations.py,sha256=FP3UWPynWHfSRgHlMliDx9LS3DF7dY3EJGPPV8hVIyY,7254
272
- phoenix/server/api/mutations/prompt_mutations.py,sha256=Yg-6L2PiKUZfFyNarptu3OdE0uA2_Nyl3VrLVP8FJ9Y,12114
273
- phoenix/server/api/mutations/prompt_version_tag_mutations.py,sha256=t77osYb5he2Am4UeNis7pzY9MnaA9PNEQhsQelRH8k8,5767
274
- phoenix/server/api/mutations/span_annotations_mutations.py,sha256=LQPcODp7-ZobXspjmtLaamyQa8UkTONC_va-ST9r-k8,15015
275
- phoenix/server/api/mutations/trace_annotations_mutations.py,sha256=zWoMfOMSQZqw7gZl7Le2PRojkDcG_KOiP1iIuqZpZ8Q,11971
276
- phoenix/server/api/mutations/trace_mutations.py,sha256=AvtQAfqNWBQpJOZm4e0DZFimhVJ6HQHtSSZtezRadCo,4698
277
- phoenix/server/api/mutations/user_mutations.py,sha256=6mwMx5I5c_VgUutOLrN9LSMcyPLgXzNaT0XT24ZwNWM,15473
260
+ phoenix/server/api/mutations/annotation_config_mutations.py,sha256=ZcjWlJ88B_jevoESmOtmO0l-SUEbtAwxwP1KpWTmYqQ,15511
261
+ phoenix/server/api/mutations/api_key_mutations.py,sha256=3djEPrVOwF7oN3C46WEROWqiBi0EZnue7dTQDAxwBKo,6526
262
+ phoenix/server/api/mutations/chat_mutations.py,sha256=EQRSGpUdlfbW1pDdCFCtMOian_CpGhhd3ZMY1qsmAhA,25345
263
+ phoenix/server/api/mutations/dataset_label_mutations.py,sha256=Paq1zsWyrAXTcfPvX5Bn53LDt1rIIrJtAo5XlRP-0Ts,11660
264
+ phoenix/server/api/mutations/dataset_mutations.py,sha256=BsBW2epV3gtgnO2fn3lJP9uX2qOZEY6gy0UW1UEgpUA,28137
265
+ phoenix/server/api/mutations/dataset_split_mutations.py,sha256=Mbmr6LyqqoaLfB4rwMrx2V0GICHlcJ34hyj6c1k7tvk,17415
266
+ phoenix/server/api/mutations/experiment_mutations.py,sha256=_fWkKl3VEMF4w885vIuh8zjH9SOhlXc4QaHzGLgBnuY,3214
267
+ phoenix/server/api/mutations/export_events_mutations.py,sha256=a9soJCXuFQ21wJa2FdbeMh7pPI7EkFzVI50nwX-Y2XI,4032
268
+ phoenix/server/api/mutations/model_mutations.py,sha256=FPr_FunvLqpzEWVwiEZ3Yh6iEISzWh151gFK8maFczY,7251
269
+ phoenix/server/api/mutations/project_mutations.py,sha256=iUzdzdz9rS98Hu5MxvjVjJAQlzJyaWt2Q7cJuy4RhNI,4621
270
+ phoenix/server/api/mutations/project_session_annotations_mutations.py,sha256=xY0PNOH-7B7nCVMBhJrqKk9eLfJ0RlMc3oFAz-FLL_w,7122
271
+ phoenix/server/api/mutations/project_trace_retention_policy_mutations.py,sha256=9gc6GfUWuXssAlEuHVViQItW5Lv5MrmTx8569d8jRQ4,9919
272
+ phoenix/server/api/mutations/prompt_label_mutations.py,sha256=OG_zPaS8dTr8IQT3Jguw3c66RzptEN5VotvjeuCZRNY,7362
273
+ phoenix/server/api/mutations/prompt_mutations.py,sha256=l4-zWtaZkazzE99pHo6z1hoX5BbEG3yKrV5w1cHC3t0,12222
274
+ phoenix/server/api/mutations/prompt_version_tag_mutations.py,sha256=oV7ClP6R3v7EjMVl4mKzPPQ_GC9Xs_tKMT-LfHDa04I,5806
275
+ phoenix/server/api/mutations/span_annotations_mutations.py,sha256=G4w2LdQwrAT-juKcf6NME3XqnCHuKT3Al8dFJWfz1S4,15080
276
+ phoenix/server/api/mutations/trace_annotations_mutations.py,sha256=vzJnmhMB_m1VbIewSaqD9xB5OAATHDtF71dsQ4f4iHU,12023
277
+ phoenix/server/api/mutations/trace_mutations.py,sha256=_lISuai_tdfmf4x1D8bS_NMv2ZV_1OmVKLoDffbYZ38,4737
278
+ phoenix/server/api/mutations/user_mutations.py,sha256=hqblu7JI-q3bh1TiRJyRIw10T9A61wWm6szoUC6ph1Y,15632
278
279
  phoenix/server/api/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
279
280
  phoenix/server/api/openapi/main.py,sha256=yKdzJYI4cxy_1mFcK4_7YObIcuRviBIfwNjB23RG14k,461
280
281
  phoenix/server/api/openapi/schema.py,sha256=WGmHWSIyJhtc5EIh_M3vlXU-EgHkFuTlyVofgS0kj1I,529
281
282
  phoenix/server/api/routers/__init__.py,sha256=YIzHsIFOOXuCRbDkMUHx-McrANFJK5UfUn6a4BNIzmo,277
282
- phoenix/server/api/routers/auth.py,sha256=hPkMmLgy9oV-V8WSlwemIbb3jiwXzzLZDW10GAfkY-o,11928
283
+ phoenix/server/api/routers/auth.py,sha256=_rb0_GWm-HSd0RPPCYl_7n8Hpe7eEI2qVq-QVKyd6SU,11350
283
284
  phoenix/server/api/routers/embeddings.py,sha256=BpZGJee0pdL0W5Rp1L0b30dEtZTgJeVqXky8LgZ0ZXw,898
284
- phoenix/server/api/routers/oauth2.py,sha256=AwfWqTQyHpXdJ3BUTkIvsgUiALAlFbERPs1pyJOM3Lo,25313
285
+ phoenix/server/api/routers/oauth2.py,sha256=0W1leIdxRRHGBpTcmrfoKDtDVQzMqHiFDqFUoUFEF1k,33509
285
286
  phoenix/server/api/routers/utils.py,sha256=M41BoH-fl37izhRuN2aX7lWm7jOC20A_3uClv9TVUUY,583
286
- phoenix/server/api/routers/v1/__init__.py,sha256=Ga6SjcX6X6Aw5VTvbiPOIXfzQS8lbVERY0BHdx5Dlks,2881
287
- phoenix/server/api/routers/v1/annotation_configs.py,sha256=xp5lJmKYlRsINCUrRD9-lTAElw2v4hdFndS5BWrxICA,16048
288
- phoenix/server/api/routers/v1/annotations.py,sha256=JjnkeKAHsaEjJkudsQpBw_iNg9GTsrKR_XRr8DblQrs,23746
289
- phoenix/server/api/routers/v1/datasets.py,sha256=1BrM9DlBqbjxahH200RvDbnTGgy6TovCR97KJmVi7XA,38581
290
- phoenix/server/api/routers/v1/documents.py,sha256=qSEQaavpKd3IFuvEiIPj4oYU4AZOi4CLlDu-ZTwWMDw,5745
291
- phoenix/server/api/routers/v1/evaluations.py,sha256=bZmOttGlI7MIDC80YfSX7-gYPa5c0WKQDIA6qbQRNEU,13084
292
- phoenix/server/api/routers/v1/experiment_evaluations.py,sha256=DZ3UK9OoYKElpRcEER7559-KiAqWr-1IXpZ27FbfP3k,5249
293
- phoenix/server/api/routers/v1/experiment_runs.py,sha256=KaQ6EI1qQrIE-q1C22C9sEUnr9aho-23xcDDPIIkwko,8378
294
- phoenix/server/api/routers/v1/experiments.py,sha256=TP9oo_pmNdZW90cfxFPQhLzCKwpJJ0n20QtQEnhQlps,20948
287
+ phoenix/server/api/routers/v1/__init__.py,sha256=C4T5F9gzb3cbaWWqR_0jysh2AhRVS_7qcceE6FD-Ojo,3320
288
+ phoenix/server/api/routers/v1/annotation_configs.py,sha256=g4XpQAAF3rt_4p0MHPsdCBiJGKCIoAHAJUQrked-eHE,15779
289
+ phoenix/server/api/routers/v1/annotations.py,sha256=ZZnh8hoOjq1rFnytivHwfIWbS1jmDZeHULPC4qV_gQM,23261
290
+ phoenix/server/api/routers/v1/datasets.py,sha256=9SRQDt4KGVOjLI8gJvdwWBsYljbeymg6yIoKRXLpgCM,38615
291
+ phoenix/server/api/routers/v1/documents.py,sha256=J6fvKipprdJJoB7Pr8dU1f7z5Bym5Ehh_sH_vtTP3R0,5667
292
+ phoenix/server/api/routers/v1/evaluations.py,sha256=BpY8vWBNAdBB3Qe_cHpkSHVfRjU0SUfOKdI46JicXJE,12578
293
+ phoenix/server/api/routers/v1/experiment_evaluations.py,sha256=qd7r8q0GXWUV_j8vx1ca-5WCazPFAf8nrKHNBqy9irk,5171
294
+ phoenix/server/api/routers/v1/experiment_runs.py,sha256=Z7pzvIms3_iSYUWELY7W-yz3dJnhN0AxJwdOb2JsCa0,8309
295
+ phoenix/server/api/routers/v1/experiments.py,sha256=OvD1JCw1Mb82t4VXXedZZBTt3FjNGdToaXYcUIKGsFY,21733
295
296
  phoenix/server/api/routers/v1/models.py,sha256=p3gJN-9SWiUYTUTft4bZMsZVCBNTb4nN1Foy68eRZzQ,1997
296
- phoenix/server/api/routers/v1/projects.py,sha256=XR6uJxHXXtC1q8LNyS9W6iaj440sv1OKCu-OSBfxEys,12824
297
- phoenix/server/api/routers/v1/prompts.py,sha256=chRYcLkOYDJdJfVZVukVTUyIRnLPvsJCg41CuPxOIU8,26695
298
- phoenix/server/api/routers/v1/sessions.py,sha256=ewp7CvhM9C1FTxZgLs_h1tPX8qaFxh1YbUeai-dKv88,4225
299
- phoenix/server/api/routers/v1/spans.py,sha256=m_4VfYndU6wVZ4xXMMJyajfuYHBiB28HCl8BAC2t2V0,47581
300
- phoenix/server/api/routers/v1/traces.py,sha256=nGqhD3AEX9jn-HKTR9rr7YP5vSyhWTx9QwdZBjOYreo,10426
301
- phoenix/server/api/routers/v1/users.py,sha256=36Egn-eRDScY3cA3Q19RLapI2JnPQ563GZl8tPI6MdU,12288
302
- phoenix/server/api/routers/v1/utils.py,sha256=oXIOGPzPTkE0ZWUTRCoRIQQ7wTzoSwtWFaUSjlGBqts,4960
297
+ phoenix/server/api/routers/v1/projects.py,sha256=E5yoL6KbjuHCqlfNc2-hkoG_7JKOI2c-xpbackS-Cys,11244
298
+ phoenix/server/api/routers/v1/prompts.py,sha256=D4pg8SSuGDEHTwDzZU9UG0ymRNDnIuuFf4zp4EeTs5Q,25920
299
+ phoenix/server/api/routers/v1/sessions.py,sha256=0rugljeHFyMOIFtRe8CkPbjBI1_49ldMPowzNrmQJf0,4133
300
+ phoenix/server/api/routers/v1/spans.py,sha256=1qSP4YRqO5W3yxx-28EHBy6tYJrA_i7CLQ-xEfN9XSU,47674
301
+ phoenix/server/api/routers/v1/traces.py,sha256=2USf0F0SFwU8GQ3lUMooMFnKlzAZwcahCz3GcIXeOic,10003
302
+ phoenix/server/api/routers/v1/users.py,sha256=SCJbYyKhiCH4BY_Luv6eixAWnrL9xHDMfqXKhm2iBAM,11650
303
+ phoenix/server/api/routers/v1/utils.py,sha256=Z4rd3dvxPYDNR0ApqH6wZ_bk5wyywaI19l0_ibqm5pk,4812
303
304
  phoenix/server/api/types/Annotation.py,sha256=gsl8CwjIbDUbZRj4d9USwZ_w_Tkz4i7zuZh9ftV80jA,1132
304
305
  phoenix/server/api/types/AnnotationConfig.py,sha256=TPukZUgvFC17W93Vnme21EhswasBMR-ZiuSWteiWZOU,3891
305
306
  phoenix/server/api/types/AnnotationSource.py,sha256=nwWL8HdnMNE8LKvAbeZix-dzfBNymACyBt9f6nzk0PM,122
@@ -314,7 +315,7 @@ phoenix/server/api/types/CostBreakdown.py,sha256=yw9dlb0blGIB_dWNP8yEvDHJztHjpiV
314
315
  phoenix/server/api/types/CreateDatasetPayload.py,sha256=R-6zCmuD0f76RU9Giu78xwTHlASQs6Aq8yzvX1Kxc3g,140
315
316
  phoenix/server/api/types/CronExpression.py,sha256=R7oxuSSX_eTUHQWaoaSueQqWDmkkHr5dBKRN6q-6ROk,331
316
317
  phoenix/server/api/types/DataQualityMetric.py,sha256=Aieg3bHeBFaAf4mqeRcH1zT04sXAtQD8ATSHJt7FaBQ,1538
317
- phoenix/server/api/types/Dataset.py,sha256=zDmvMl3J2pIX4VwjX-PAek5jC1_jk7ME-p0wHXW3Des,12991
318
+ phoenix/server/api/types/Dataset.py,sha256=9e3X4r0Z7GL7axi7JQk67eTCAZNMw_7UOja_JoaSmJo,16819
318
319
  phoenix/server/api/types/DatasetExample.py,sha256=9xEdDVj8rNK3LOs98Ekm67sz56yfpjj9Vn9CXIndW74,5650
319
320
  phoenix/server/api/types/DatasetExampleRevision.py,sha256=c-jWR6dTguEZTm54IMlFr0Ic84I3nefyDnZb7nF5hnI,874
320
321
  phoenix/server/api/types/DatasetExperimentAnnotationSummary.py,sha256=EVXz6zfbdYsU5SZ6FUrAA_VQqQCnBE_mbKgmAmFoDLI,195
@@ -357,7 +358,7 @@ phoenix/server/api/types/ModelInterface.py,sha256=Qe7H23wDb_Q2-HmeY2t0R5Jsn4aAfY
357
358
  phoenix/server/api/types/NumericRange.py,sha256=afEjgF97Go_OvmjMggbPBt-zGM8IONewAyEiKEHRds0,192
358
359
  phoenix/server/api/types/PerformanceMetric.py,sha256=KFkmJDqP43eDUtARQOUqR7NYcxvL6Vh2uisHWU6H3ko,387
359
360
  phoenix/server/api/types/PlaygroundModel.py,sha256=IqJFxsAAJMRyaFI9ryI3GQrpFOJ5Llf6kIutEO-tFvM,321
360
- phoenix/server/api/types/Project.py,sha256=D6S4hgcSXD1V2brV1x-NImWfoTcU4u9BceIBX8S1pvY,72873
361
+ phoenix/server/api/types/Project.py,sha256=r-Bs_9lA8Ed8xdwobdMELCrMOdwek8m5VPYGEiNz-tI,70854
361
362
  phoenix/server/api/types/ProjectSession.py,sha256=YvRqj9qXXY4FvYN9Nhie9qdHcNCEPz7SoBdflrbLGRk,9795
362
363
  phoenix/server/api/types/ProjectSessionAnnotation.py,sha256=yerdFlW_dhCxDeoyE-75n6I_k4uUWn0m3S4XSdplS6E,2102
363
364
  phoenix/server/api/types/ProjectTraceRetentionPolicy.py,sha256=tYy2kgalPDyuaYZr0VUHjH0YpXaiF_QOzg5yfaV_c7c,3782
@@ -428,16 +429,16 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
428
429
  phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
429
430
  phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
430
431
  phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
431
- phoenix/server/static/.vite/manifest.json,sha256=Pu8-OxoLf8RlAl-i0K8pAuKfVy6h7ZuOBJR9psD5frE,2328
432
- phoenix/server/static/assets/components-Bs8eJEpU.js,sha256=ml92PuSdVdsbHS8q6c4sHSWJ9nBSjo1l1qvjzM6EVF4,723590
433
- phoenix/server/static/assets/index-C6WEu5UP.js,sha256=mY6KSmhD7Okipz8iEqbzZpyFQG_fVUIpNfKiT8ND8OM,63680
434
- phoenix/server/static/assets/pages-D-n2pkoG.js,sha256=rtkn8DSkEKuvyFlbSF6dUn_uGCVyUBZZh--yByZSEmI,1341008
432
+ phoenix/server/static/.vite/manifest.json,sha256=silunyyOmVAGQps_jL9aTV8d03ZDtMiKo-42b52u49Q,2328
433
+ phoenix/server/static/assets/components-cwdYEs7B.js,sha256=47qfw-bmftAyo9ANA81Ot24VTAU1kI35jML_g92NJt4,741688
434
+ phoenix/server/static/assets/index-Dc0vD1Rn.js,sha256=zVCMmPbr4UA6BhhArmzav1NSOcjFv76EqqSbbUedLYs,63680
435
+ phoenix/server/static/assets/pages-BDkB3a_a.js,sha256=CgzTVVYSyPnUWbQs_W0uf7fKDcYjklApAUDtiVyQ-zg,1352672
435
436
  phoenix/server/static/assets/vendor-BGzfc4EU.css,sha256=Nx5Lmx-bqYR7nsO_O4kEBcrJ8cwknWjZ6seHN3_s4UQ,3171
436
- phoenix/server/static/assets/vendor-D2eEI-6h.js,sha256=DcZ_ov-x3PP13qfDh2X0hhQTuuSnxoMnYVBW98YBo0Q,2709850
437
- phoenix/server/static/assets/vendor-arizeai-kfOei7nf.js,sha256=AlUQvzFvgUY2d5qzujvi4N7VXbhmpcnrKAYk9Ilpzt4,107788
438
- phoenix/server/static/assets/vendor-codemirror-1bq_t1Ec.js,sha256=cjHHniUz2eOaXgg3iPcyd3d8hRz_2z7tW_UTPiMyGiA,413211
439
- phoenix/server/static/assets/vendor-recharts-DQ4xfrf4.js,sha256=tTNG6AAxOGuPbEnjQkr3EzR7COVhDnN37QJFV6BNQg8,231652
440
- phoenix/server/static/assets/vendor-shiki-GGmcIQxA.js,sha256=U357g2RSPGwucCoww2yscGQcLyWIcP3EQxlkMgR9CJg,305160
437
+ phoenix/server/static/assets/vendor-Ce6GTAin.js,sha256=k2-KQcgnT72FQrld80rZ4i6xwZFLNOXYnzoxmafJ6dM,2709850
438
+ phoenix/server/static/assets/vendor-arizeai-CSF-1Kc5.js,sha256=QzLkcp6Qyc8cBmTC-_HMBFskV7RH5C_gJL01tg5D398,107788
439
+ phoenix/server/static/assets/vendor-codemirror-Bv8J_7an.js,sha256=OHKLBrrONfwV0plQcCulUS0pgeKYDaT_ZvYxxcwZYtE,413211
440
+ phoenix/server/static/assets/vendor-recharts-DcLgzI7g.js,sha256=1ncLhLxQPfQC_7j90ms3HMxU_OLIWlna70T1kyoTDR8,231652
441
+ phoenix/server/static/assets/vendor-shiki-BF8rh_7m.js,sha256=YcEirsQMcEwHSIUVn7A7Y65zo9Qs3wQxdY5J-hG18D8,305160
441
442
  phoenix/server/static/assets/vendor-three-BLWp5bic.js,sha256=vfSCVXS20jA0Ceo_O0mDxYBcROinWMdPE6RR4JXmtec,620972
442
443
  phoenix/server/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
443
444
  phoenix/server/templates/index.html,sha256=_iKIyXEDDr5cTTnrUCjCd617U6Alc1k-IXtdKSt8g14,7215
@@ -447,7 +448,7 @@ phoenix/session/data_extractor.py,sha256=y_21QYW5emZ-SFYN9GtpUwDBMPCWtbRk3ZGxfR3
447
448
  phoenix/session/evaluation.py,sha256=l0IMuAmqIqgr_Ye15VCr4Z-_e4g9OCT1XYwsdT7DuGQ,5528
448
449
  phoenix/session/session.py,sha256=SUQcBBA5H_pM1DXoKT6zfK_Fhlc9XCja-WwSfBUXnSI,29199
449
450
  phoenix/trace/__init__.py,sha256=ujk_uYjM8gmm-YqnyXxF-kekfwid0bcaPMTtNNcaw6U,407
450
- phoenix/trace/attributes.py,sha256=hyEKYZWPCP4NRmW7VmiC2voa3TH7FYKUBR9DYiVfXlw,12627
451
+ phoenix/trace/attributes.py,sha256=6Y7VnpooJAGmxuoIbTKsRnFjb26A64jczgKmUhE8tu8,15908
451
452
  phoenix/trace/errors.py,sha256=wB1z8qdPckngdfU-TORToekvg3344oNFAA83_hC2yFY,180
452
453
  phoenix/trace/evaluation_conventions.py,sha256=t8jydM3U0-T5YpiQKRJ3tWdWGlHtzKyttYdw-ddvPOk,1048
453
454
  phoenix/trace/exporter.py,sha256=bUXh8fjJIbHurrnt4bAm-cCWqUN5FqNsIc8DZzzklkQ,4695
@@ -477,9 +478,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
477
478
  phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
478
479
  phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
479
480
  phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
480
- arize_phoenix-12.3.0.dist-info/METADATA,sha256=NBdFfBR6OscGNJ7RHEM0IhHe2mnvNAie9rm_UlWvHmA,34045
481
- arize_phoenix-12.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
482
- arize_phoenix-12.3.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
483
- arize_phoenix-12.3.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
484
- arize_phoenix-12.3.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
485
- arize_phoenix-12.3.0.dist-info/RECORD,,
481
+ arize_phoenix-12.5.0.dist-info/METADATA,sha256=8noiF2OI1hEI45XtrnDzongEmwKPvXAfSFkeMpPXgmY,34069
482
+ arize_phoenix-12.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
483
+ arize_phoenix-12.5.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
484
+ arize_phoenix-12.5.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
485
+ arize_phoenix-12.5.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
486
+ arize_phoenix-12.5.0.dist-info/RECORD,,
phoenix/auth.py CHANGED
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import re
4
4
  from dataclasses import dataclass
5
- from datetime import datetime, timedelta
5
+ from datetime import datetime, timedelta, timezone
6
6
  from enum import Enum, auto
7
7
  from hashlib import pbkdf2_hmac
8
8
  from typing import Any, Literal, Optional, Protocol
@@ -129,6 +129,18 @@ def set_oauth2_nonce_cookie(
129
129
  )
130
130
 
131
131
 
132
+ def set_oauth2_code_verifier_cookie(
133
+ *, response: ResponseType, code_verifier: str, max_age: timedelta
134
+ ) -> ResponseType:
135
+ return _set_cookie(
136
+ response=response,
137
+ cookie_name=PHOENIX_OAUTH2_CODE_VERIFIER_COOKIE_NAME,
138
+ cookie_max_age=max_age,
139
+ samesite="lax",
140
+ value=code_verifier,
141
+ )
142
+
143
+
132
144
  def _set_cookie(
133
145
  *,
134
146
  response: ResponseType,
@@ -169,6 +181,11 @@ def delete_oauth2_nonce_cookie(response: ResponseType) -> ResponseType:
169
181
  return response
170
182
 
171
183
 
184
+ def delete_oauth2_code_verifier_cookie(response: ResponseType) -> ResponseType:
185
+ response.delete_cookie(key=PHOENIX_OAUTH2_CODE_VERIFIER_COOKIE_NAME)
186
+ return response
187
+
188
+
172
189
  @dataclass(frozen=True)
173
190
  class _PasswordRequirements:
174
191
  """
@@ -270,6 +287,8 @@ PHOENIX_OAUTH2_STATE_COOKIE_NAME = "phoenix-oauth2-state"
270
287
  """The name of the cookie that stores the state used for the OAuth2 authorization code flow."""
271
288
  PHOENIX_OAUTH2_NONCE_COOKIE_NAME = "phoenix-oauth2-nonce"
272
289
  """The name of the cookie that stores the nonce used for the OAuth2 authorization code flow."""
290
+ PHOENIX_OAUTH2_CODE_VERIFIER_COOKIE_NAME = "phoenix-oauth2-code-verifier"
291
+ """The name of the cookie that stores the PKCE code verifier for OAuth2."""
273
292
  DEFAULT_OAUTH2_LOGIN_EXPIRY_MINUTES = 15
274
293
  """
275
294
  The default amount of time in minutes that can elapse between the initial
@@ -312,7 +331,13 @@ class ClaimSet:
312
331
 
313
332
  @property
314
333
  def status(self) -> ClaimSetStatus:
315
- if self.expiration_time and self.expiration_time.timestamp() < datetime.now().timestamp():
334
+ # Per JWT RFC 7519 Section 4.1.4, the expiration time identifies the time
335
+ # "on or after which" the JWT must not be accepted. Use <= for inclusive check.
336
+ # https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4
337
+ if (
338
+ self.expiration_time
339
+ and self.expiration_time.timestamp() <= datetime.now(timezone.utc).timestamp()
340
+ ):
316
341
  return ClaimSetStatus.EXPIRED
317
342
  if self.token_id is not None and self.subject is not None:
318
343
  return ClaimSetStatus.VALID