Skip to content

Commit f79a983

Browse files
Merge branch 'master' into fix/remote-online-store-timestamp-columns
2 parents a2768c6 + 3f6359d commit f79a983

16 files changed

Lines changed: 156 additions & 498 deletions

.github/workflows/publish.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,16 @@ on:
2929
token:
3030
description: 'Personal Access Token'
3131
required: true
32-
default: ""
3332
type: string
3433
publish_ui:
3534
description: 'Publish to NPM?'
3635
required: true
37-
default: true
3836
type: boolean
3937

38+
permissions:
39+
contents: read
40+
id-token: write
41+
4042
jobs:
4143
publish-python-sdk:
4244
uses: ./.github/workflows/publish_python_sdk.yml

.github/workflows/publish_web_ui.yml

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,6 @@
11
name: publish web ui
22

33
on:
4-
workflow_dispatch: # Allows manual trigger of the workflow
5-
inputs:
6-
current_version:
7-
description: 'Current version to bump from (e.g., v1.2.3). If not provided, will auto-detect from git tags'
8-
required: false
9-
type: string
10-
custom_version: # Optional input for a custom version
11-
description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing'
12-
required: false
13-
type: string
14-
token:
15-
description: 'Personal Access Token'
16-
required: false
17-
default: ""
18-
type: string
19-
publish_ui:
20-
description: 'Publish to NPM?'
21-
required: true
22-
default: true
23-
type: boolean
244
workflow_call: # Allows trigger of the workflow from another workflow
255
inputs:
266
current_version:
@@ -39,16 +19,17 @@ on:
3919
publish_ui:
4020
description: 'Publish to NPM?'
4121
required: true
42-
default: true
4322
type: boolean
4423

24+
permissions:
25+
contents: read
26+
id-token: write
27+
4528
jobs:
4629
publish-web-ui-npm:
4730
if: github.repository == 'feast-dev/feast'
4831
runs-on: ubuntu-latest
49-
env:
50-
# This publish is working using an NPM automation token to bypass 2FA
51-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
32+
environment: production
5233
steps:
5334
- uses: actions/checkout@v4
5435
- name: Determine current version
@@ -108,8 +89,10 @@ jobs:
10889
- name: Setup Node.js
10990
uses: actions/setup-node@v4
11091
with:
111-
node-version-file: './ui/.nvmrc'
92+
node-version: '22.14.0'
11293
registry-url: 'https://registry.npmjs.org'
94+
- name: Update npm for trusted publishing
95+
run: npm install --global npm@11.5.1
11396
- name: Bump file versions (temporarily for Web UI publish)
11497
if: github.event.inputs.custom_version != ''
11598
env:
@@ -137,6 +120,3 @@ jobs:
137120
working-directory: ./ui
138121
if: github.event.inputs.publish_ui != 'false'
139122
run: npm publish
140-
env:
141-
# This publish is working using an NPM automation token to bypass 2FA
142-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.secrets.baseline

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@
142142
"filename": ".github/workflows/publish.yml",
143143
"hashed_secret": "3e26d6750975d678acb8fa35a0f69237881576b0",
144144
"is_verified": false,
145-
"line_number": 43
145+
"line_number": 45
146146
}
147147
],
148148
".github/workflows/publish_python_sdk.yml": [
@@ -1555,5 +1555,5 @@
15551555
}
15561556
]
15571557
},
1558-
"generated_at": "2026-07-10T13:52:47Z"
1558+
"generated_at": "2026-07-13T15:26:35Z"
15591559
}

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ dynamic = [
1414
"version",
1515
]
1616
dependencies = [
17+
"attrs",
1718
"click>=7.0.0,<9.0.0",
1819
"colorama>=0.3.9,<1",
1920
"dill~=0.3.0",
2021
"protobuf>=4.24.0",
2122
"Jinja2>=2,<4",
22-
"jsonschema",
2323
"mmh3",
2424
"numpy>=2.0.0,<3",
2525
"pandas>=1.4.3,<3",

sdk/python/requirements/py3.10-ci-requirements.txt

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ attrs==26.1.0 \
251251
--hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \
252252
--hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32
253253
# via
254+
# feast (pyproject.toml)
254255
# aiohttp
255256
# jsonlines
256257
# jsonschema
@@ -1473,7 +1474,9 @@ fsspec[http]==2026.4.0 \
14731474
geomet==1.1.0 \
14741475
--hash=sha256:4372fe4e286a34acc6f2e9308284850bd8c4aa5bc12065e2abbd4995900db12f \
14751476
--hash=sha256:51e92231a0ef6aaa63ac20c443377ba78a303fd2ecd179dc3567de79f3c11605
1476-
# via cassandra-driver
1477+
# via
1478+
# cassandra-driver
1479+
# scylla-driver
14771480
gitdb==4.0.12 \
14781481
--hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \
14791482
--hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf
@@ -2143,7 +2146,6 @@ jsonschema[format-nongpl]==4.26.0 \
21432146
--hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \
21442147
--hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce
21452148
# via
2146-
# feast (pyproject.toml)
21472149
# altair
21482150
# docling-core
21492151
# great-expectations
@@ -5028,6 +5030,7 @@ pyyaml==6.0.3 \
50285030
# pre-commit
50295031
# ray
50305032
# responses
5033+
# scylla-driver
50315034
# timm
50325035
# transformers
50335036
# uvicorn
@@ -5652,6 +5655,43 @@ scipy==1.15.3 \
56525655
# scikit-learn
56535656
# sentence-transformers
56545657
# skops
5658+
scylla-driver==3.29.11 \
5659+
--hash=sha256:0a93dd4af8995ac08335e581aca393a2bca64c3d4748ec359b9400797f2a7449 \
5660+
--hash=sha256:17b19807a8690a4df2e52bb23327a746715e7076f5f28b45a6ce4556b2a00dd7 \
5661+
--hash=sha256:1ea1fd011d8cf74b706c1b6ae982437597abf545e6d53f3a79905c97831db16a \
5662+
--hash=sha256:241bffc347888dbeae48d842e58a7d20915ee518beb46467d9b7cd5a0ad501ed \
5663+
--hash=sha256:2546a6646eead8225c8a0440c744c50ca85147fe61a712fb68e08be11ab21560 \
5664+
--hash=sha256:2a4116f2da833f76db6e59b4c0534b72291cac478ca4b5944abbdd52b1635d94 \
5665+
--hash=sha256:3094c90a49c172b1c09bbf44b46ea0c2c284e35cfd0222bc0062492de05131c0 \
5666+
--hash=sha256:39f48ebe02d17e7cc6f3ba34f9748c971932eaa11d6557ab7d5fae1631987a55 \
5667+
--hash=sha256:45050fd2028f07e236b7b3a555d4d17a1d88ea8ba8b5609ae1d14730a65b1e4f \
5668+
--hash=sha256:57e8fffaf0803c0a406cc0e331a738c5d305fb28c9f5834d29c077fa134a8820 \
5669+
--hash=sha256:617a8c459b30403002d38d7f99e3ed160da7671c7e62b0647e5fbd89539c6aff \
5670+
--hash=sha256:677b5b0312275a958c80dbd3d1686e4a60c805ddae290a4b56551245c0a07a95 \
5671+
--hash=sha256:6ee63f2503590f683e4b6c39c0070f567cc825fabd20f74cfe053d926a930ffc \
5672+
--hash=sha256:70dda8384ae23472cfdf6c798d20e59639aa1e4796937417088151adb4acf4a9 \
5673+
--hash=sha256:74668f6d4bca9f05f0826b8b464f363e7c1c7ac1cbbf373bae638bdc68780b8e \
5674+
--hash=sha256:8072842efb2ff7c9761563485156fb0b6a11c68b028e32b6a807a70d226dbbbd \
5675+
--hash=sha256:844e61a13edf0d12f95a64f6dd8a9c0fd0b0919570e10631e33c640acff59db7 \
5676+
--hash=sha256:8ed1b2ec3634d3b25609a3a587de420a41b435f497e963434a8b5b42fa32c88e \
5677+
--hash=sha256:9fb9bc8ae114434c3418ca8ba0bca00fb7afd4943a52694b5bde3f8681a0eea9 \
5678+
--hash=sha256:a8f644d73713be556e99d6355cd2de41503ee50bff990865d71887e1f9f18b46 \
5679+
--hash=sha256:abb5f98b4efbcb6257d1b97eea9c2bb95ea509e8983c2b8e021810ef460cb390 \
5680+
--hash=sha256:acb38ed6acae2185bdef6834569bb95acd858ec91a8269c555e912127946e998 \
5681+
--hash=sha256:ae36b731481c9ded343811132bcce4f68c9f2de8af8a51248fcea4d9c3b36d52 \
5682+
--hash=sha256:b5a4851afb2a6d8410f55e7344b0589f71289338ff35c6901135c1a683381149 \
5683+
--hash=sha256:bf33948e181c469f63108c01f319078051819c147f6446ea56b71975656efc1e \
5684+
--hash=sha256:cd0d872882a4c098eacc83b832a042ea0b5165e247790d378e215c2a9f205d44 \
5685+
--hash=sha256:cdd43ebb03db2441b920033d032a824612aa7f4daa58e88563e0a2036d6bd860 \
5686+
--hash=sha256:ce1cc363d2b9c9e5a0def22b85c13c1bde6f26d1abca427b408bd18f0fd3828c \
5687+
--hash=sha256:cf98016b6ce61dc30d80ac5bc491e0a84aa9da09e326fead5bba888d55f56126 \
5688+
--hash=sha256:dda6b9f7fe48c6a0623e629a6bc0497dff132ca8a2a8897cd1f4281b5b12ecfe \
5689+
--hash=sha256:e74576dba8992b4dac6ea3fe4c8cfd92f5318aa08b20142aff6423f20e56da7d \
5690+
--hash=sha256:e7d899f1b5bc6d9441db01b05bd3c317b99be23525e6baae789ee59d759187fc \
5691+
--hash=sha256:ee188f93fc931d9ce6231b550260988312445ecd2ea336445ec98b225ace47fb \
5692+
--hash=sha256:f222606faeb11f7d41197f16b97cfc3c9578608bd5c2813d51d30c4dc42e675b \
5693+
--hash=sha256:f3e2d06685fb1e6dad8905b0efa9423155852cf1b2a0d2b1aad3687cd488e4a4
5694+
# via feast (pyproject.toml)
56555695
semchunk==3.2.5 \
56565696
--hash=sha256:ee15e9a06a69a411937dd8fcf0a25d7ef389c5195863140436872a02c95b0218 \
56575697
--hash=sha256:fd09cc5f380bd010b8ca773bd81893f7eaf11d37dd8362a83d46cedaf5dae076

sdk/python/requirements/py3.10-minimal-requirements.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ attrs==26.1.0 \
211211
--hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \
212212
--hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32
213213
# via
214+
# feast (pyproject.toml)
214215
# aiohttp
215216
# jsonschema
216217
# referencing
@@ -1178,9 +1179,7 @@ jmespath==1.1.0 \
11781179
jsonschema==4.26.0 \
11791180
--hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \
11801181
--hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce
1181-
# via
1182-
# feast (pyproject.toml)
1183-
# mcp
1182+
# via mcp
11841183
jsonschema-specifications==2025.9.1 \
11851184
--hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \
11861185
--hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d

sdk/python/requirements/py3.10-minimal-sdist-requirements.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ attrs==26.1.0 \
215215
--hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \
216216
--hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32
217217
# via
218+
# feast (pyproject.toml)
218219
# aiohttp
219220
# jsonschema
220221
# referencing
@@ -1368,9 +1369,7 @@ jmespath==1.1.0 \
13681369
jsonschema==4.26.0 \
13691370
--hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \
13701371
--hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce
1371-
# via
1372-
# feast (pyproject.toml)
1373-
# mcp
1372+
# via mcp
13741373
jsonschema-specifications==2025.9.1 \
13751374
--hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \
13761375
--hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d

0 commit comments

Comments
 (0)