parse-stack-next 4.5.0 → 5.0.0
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.
- checksums.yaml +4 -4
- data/.env.sample +17 -3
- data/.github/workflows/codeql.yml +44 -0
- data/.github/workflows/docs.yml +39 -0
- data/.github/workflows/ruby.yml +8 -6
- data/.gitignore +4 -0
- data/CHANGELOG.md +295 -72
- data/Gemfile.lock +10 -3
- data/LICENSE.txt +1 -1
- data/README.md +190 -219
- data/Rakefile +1 -1
- data/SECURITY.md +30 -0
- data/assets/parse-stack-next-avatar.png +0 -0
- data/assets/parse-stack-next-avatar.svg +37 -0
- data/assets/parse-stack-next-banner.png +0 -0
- data/assets/parse-stack-next-banner.svg +45 -0
- data/assets/parse-stack-next-social-preview.png +0 -0
- data/docs/atlas_vector_search_guide.md +511 -0
- data/docs/client_sdk_guide.md +1320 -0
- data/docs/mcp_guide.md +225 -104
- data/docs/mongodb_direct_guide.md +21 -4
- data/docs/usage_guide.md +585 -0
- data/examples/transaction_example.rb +28 -28
- data/lib/parse/acl_scope.rb +2 -2
- data/lib/parse/agent/mcp_rack_app.rb +184 -16
- data/lib/parse/agent/metadata_dsl.rb +16 -16
- data/lib/parse/agent/pipeline_validator.rb +28 -1
- data/lib/parse/agent/prompts.rb +5 -5
- data/lib/parse/agent/tools.rb +287 -14
- data/lib/parse/agent.rb +209 -12
- data/lib/parse/api/analytics.rb +27 -5
- data/lib/parse/api/files.rb +6 -2
- data/lib/parse/api/push.rb +21 -4
- data/lib/parse/api/server.rb +59 -0
- data/lib/parse/api/users.rb +26 -2
- data/lib/parse/atlas_search/index_manager.rb +84 -0
- data/lib/parse/atlas_search.rb +37 -9
- data/lib/parse/cache/pool.rb +73 -0
- data/lib/parse/cache/redis.rb +190 -0
- data/lib/parse/client/body_builder.rb +94 -0
- data/lib/parse/client/caching.rb +109 -9
- data/lib/parse/client/response.rb +27 -0
- data/lib/parse/client.rb +74 -3
- data/lib/parse/console.rb +203 -0
- data/lib/parse/embeddings/cohere.rb +484 -0
- data/lib/parse/embeddings/fixture.rb +130 -0
- data/lib/parse/embeddings/jina.rb +454 -0
- data/lib/parse/embeddings/local_http.rb +492 -0
- data/lib/parse/embeddings/openai.rb +520 -0
- data/lib/parse/embeddings/provider.rb +264 -0
- data/lib/parse/embeddings/qwen.rb +431 -0
- data/lib/parse/embeddings/voyage.rb +550 -0
- data/lib/parse/embeddings.rb +225 -0
- data/lib/parse/graphql/scalars.rb +53 -0
- data/lib/parse/graphql/type_generator.rb +264 -0
- data/lib/parse/graphql.rb +48 -0
- data/lib/parse/live_query/client.rb +24 -5
- data/lib/parse/live_query/subscription.rb +17 -6
- data/lib/parse/live_query.rb +9 -4
- data/lib/parse/model/associations/collection_proxy.rb +2 -2
- data/lib/parse/model/associations/has_many.rb +32 -1
- data/lib/parse/model/associations/has_one.rb +17 -0
- data/lib/parse/model/associations/pointer_collection_proxy.rb +3 -3
- data/lib/parse/model/classes/user.rb +307 -11
- data/lib/parse/model/clp.rb +1 -1
- data/lib/parse/model/core/embed_managed.rb +296 -0
- data/lib/parse/model/core/fetching.rb +4 -4
- data/lib/parse/model/core/indexing.rb +53 -14
- data/lib/parse/model/core/parse_reference.rb +3 -3
- data/lib/parse/model/core/properties.rb +70 -1
- data/lib/parse/model/core/querying.rb +57 -1
- data/lib/parse/model/core/vector_searchable.rb +285 -0
- data/lib/parse/model/file.rb +16 -4
- data/lib/parse/model/model.rb +26 -10
- data/lib/parse/model/object.rb +63 -6
- data/lib/parse/model/pointer.rb +16 -2
- data/lib/parse/model/shortnames.rb +2 -0
- data/lib/parse/model/validations/uniqueness_validator.rb +3 -3
- data/lib/parse/model/vector.rb +102 -0
- data/lib/parse/mongodb.rb +90 -8
- data/lib/parse/pipeline_security.rb +59 -2
- data/lib/parse/query/constraints.rb +16 -14
- data/lib/parse/query/ordering.rb +1 -1
- data/lib/parse/query.rb +137 -64
- data/lib/parse/stack/generators/templates/model.erb +2 -2
- data/lib/parse/stack/generators/templates/model_installation.rb +1 -1
- data/lib/parse/stack/generators/templates/model_role.rb +1 -1
- data/lib/parse/stack/generators/templates/model_session.rb +1 -1
- data/lib/parse/stack/generators/templates/parse.rb +1 -1
- data/lib/parse/stack/generators/templates/webhooks.rb +1 -1
- data/lib/parse/stack/version.rb +1 -1
- data/lib/parse/stack.rb +375 -73
- data/lib/parse/two_factor_auth/user_extension.rb +5 -2
- data/lib/parse/vector_search.rb +341 -0
- data/parse-stack-next.gemspec +10 -9
- data/scripts/docker/docker-compose.test.yml +18 -0
- data/scripts/start-parse.sh +6 -0
- data/scripts/vector_prototype/create_vector_index.js +105 -0
- data/scripts/vector_prototype/fetch_embeddings.py +241 -0
- data/scripts/vector_prototype/fixture_manifest.json +9 -0
- data/scripts/vector_prototype/query_prototype.rb +84 -0
- data/scripts/vector_prototype/run.sh +34 -0
- metadata +75 -5
- data/parse-stack.png +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 95fffb5091fe5273dd4a82cd2083362845f0622113b86db727d754d4d1c55f66
|
|
4
|
+
data.tar.gz: 46f16ac282f1d9ba487b0638af7dfc9de82e5ae7f9e710e66280dfc52db56e10
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 68edaa682a0f92a59c66ce0500e08c99520443d41e28b5ff5486aed6a0e594ac6fb38c1a5939f5cada7f5ade2d489fd0ffe64d0a14e04a7738cdbde8a66c2e55
|
|
7
|
+
data.tar.gz: 236e03357d93f02ca40692ed54ee074b6bff194f21e145e785305004c6e0767a1ec1b9e6e8d43d8f83d886fa41d469aac14b65096b1b8e29cced13ba60b4f865
|
data/.env.sample
CHANGED
|
@@ -34,11 +34,9 @@ PARSE_MASTER_KEY=myMasterKey
|
|
|
34
34
|
# PARSE_TIMEOUT=30
|
|
35
35
|
# PARSE_REQUIRE_HTTPS=true
|
|
36
36
|
|
|
37
|
-
# Optional service URLs (only if you split webhooks/
|
|
37
|
+
# Optional service URLs (only if you split webhooks/hooks endpoints):
|
|
38
38
|
# PARSE_LIVE_QUERY_URL=
|
|
39
|
-
# CONFIG_URL=
|
|
40
39
|
# HOOKS_URL=
|
|
41
|
-
# HYPERDRIVE_URL=
|
|
42
40
|
|
|
43
41
|
# ===========================================================================
|
|
44
42
|
# Webhooks
|
|
@@ -110,3 +108,19 @@ PARSE_MASTER_KEY=myMasterKey
|
|
|
110
108
|
# LLM_ENDPOINT=http://localhost:1234/v1
|
|
111
109
|
# OPENAI_API_KEY=
|
|
112
110
|
# ANTHROPIC_API_KEY=
|
|
111
|
+
|
|
112
|
+
# ===========================================================================
|
|
113
|
+
# Embedding providers (Parse::Embeddings)
|
|
114
|
+
#
|
|
115
|
+
# Used by `Parse::Embeddings.register(...)` in initializers / tests for the
|
|
116
|
+
# text-only providers shipped in v5.0: OpenAI, Cohere, Voyage, Jina, Qwen.
|
|
117
|
+
# LocalHTTP providers (Ollama, LM Studio, vLLM, self-hosted voyage-4-nano /
|
|
118
|
+
# Qwen3-Embedding) read no env var by default — their api_key (if any) is
|
|
119
|
+
# passed at registration time.
|
|
120
|
+
# ===========================================================================
|
|
121
|
+
|
|
122
|
+
# OPENAI_API_KEY=sk-...
|
|
123
|
+
# COHERE_API_KEY=
|
|
124
|
+
# VOYAGE_API_KEY=pa-...
|
|
125
|
+
# JINA_API_KEY=jina_...
|
|
126
|
+
# DASHSCOPE_API_KEY=sk-... # Alibaba Cloud DashScope (Qwen 3 embeddings)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: "CodeQL Advanced"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ "main" ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ "main" ]
|
|
8
|
+
schedule:
|
|
9
|
+
- cron: '32 23 * * 1'
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
analyze:
|
|
13
|
+
name: Analyze (${{ matrix.language }})
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
permissions:
|
|
16
|
+
security-events: write
|
|
17
|
+
packages: read
|
|
18
|
+
actions: read
|
|
19
|
+
contents: read
|
|
20
|
+
|
|
21
|
+
strategy:
|
|
22
|
+
fail-fast: false
|
|
23
|
+
matrix:
|
|
24
|
+
include:
|
|
25
|
+
- language: actions
|
|
26
|
+
build-mode: none
|
|
27
|
+
- language: ruby
|
|
28
|
+
build-mode: none
|
|
29
|
+
|
|
30
|
+
steps:
|
|
31
|
+
- name: Checkout repository
|
|
32
|
+
uses: actions/checkout@v4
|
|
33
|
+
|
|
34
|
+
- name: Initialize CodeQL
|
|
35
|
+
uses: github/codeql-action/init@v4
|
|
36
|
+
with:
|
|
37
|
+
languages: ${{ matrix.language }}
|
|
38
|
+
build-mode: ${{ matrix.build-mode }}
|
|
39
|
+
queries: security-extended,security-and-quality
|
|
40
|
+
|
|
41
|
+
- name: Perform CodeQL Analysis
|
|
42
|
+
uses: github/codeql-action/analyze@v4
|
|
43
|
+
with:
|
|
44
|
+
category: "/language:${{matrix.language}}"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: Publish YARD Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
pages: write
|
|
11
|
+
id-token: write
|
|
12
|
+
|
|
13
|
+
concurrency:
|
|
14
|
+
group: pages
|
|
15
|
+
cancel-in-progress: false
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
build:
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v4
|
|
22
|
+
- uses: ruby/setup-ruby@afeafc3d1ab54a631816aba4c914a0081c12ff2f # v1.310.0
|
|
23
|
+
with:
|
|
24
|
+
ruby-version: '3.4'
|
|
25
|
+
bundler-cache: true
|
|
26
|
+
- name: Build YARD docs
|
|
27
|
+
run: bundle exec rake yard
|
|
28
|
+
- uses: actions/upload-pages-artifact@v3
|
|
29
|
+
with:
|
|
30
|
+
path: doc/parse-stack-next
|
|
31
|
+
deploy:
|
|
32
|
+
needs: build
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
environment:
|
|
35
|
+
name: github-pages
|
|
36
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
37
|
+
steps:
|
|
38
|
+
- id: deployment
|
|
39
|
+
uses: actions/deploy-pages@v4
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -9,9 +9,12 @@ name: Gem Tests
|
|
|
9
9
|
|
|
10
10
|
on:
|
|
11
11
|
push:
|
|
12
|
-
branches: [
|
|
12
|
+
branches: [main]
|
|
13
13
|
pull_request:
|
|
14
|
-
branches: [
|
|
14
|
+
branches: [main]
|
|
15
|
+
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
15
18
|
|
|
16
19
|
jobs:
|
|
17
20
|
test:
|
|
@@ -26,11 +29,10 @@ jobs:
|
|
|
26
29
|
- name: Set up Ruby
|
|
27
30
|
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
|
28
31
|
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
|
29
|
-
uses: ruby/setup-ruby@v1
|
|
30
|
-
# uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
|
|
32
|
+
uses: ruby/setup-ruby@afeafc3d1ab54a631816aba4c914a0081c12ff2f # v1.310.0
|
|
31
33
|
with:
|
|
32
34
|
ruby-version: ${{ matrix.ruby }}
|
|
33
35
|
- name: Install dependencies
|
|
34
36
|
run: bundle install
|
|
35
|
-
- name: Run tests
|
|
36
|
-
run: bundle exec rake
|
|
37
|
+
- name: Run unit tests
|
|
38
|
+
run: bundle exec rake test:unit
|