docs: Mappings (sys-mappings) bileşeni, scripts/REF, filtreleme vocabulary'si ve queryRoles/start transition - #12
Conversation
…s etki alanı ve start transition Birden fazla platform gelişmesini tutarlı çapraz referanslarla dökümante eder. Mappings (sys-mappings) + scripts + REF + Scripting: - Yeni components/mapping-component: yeniden kullanılabilir/versiyonlu script helper'ları, scripts (helpers/allowedAssemblies), REF encoding, plugin/3rd-party assembly. EN mirror. - Yeni configuration/scripting: Sandbox, ban listesi, default usings/references. - workflow attributes.scripts + "Scripts" ve "REF" bölümleri; extension/functions/ view-selection encoding tablolarına REF + scripts; mappings rehberi REF; interfaces notu. - tutorial klasör ağacına Mappings/; forge-studio'ya REF picker; sidebar girişleri. Filtreleme/sıralama vocabulary'si (x-filterOperators / x-sortable / x-displayFormat): - components/schema + how-to/instance-filtering: tip-operatör/SQL davranışı, kurallar, SchemaFilterValidationException, includes; schema-tanimi designer girdileri. State QueryRoles etki alanı + StartTransition davranışı: - built-in/workflow/authorization: state/data/view/schema read fonksiyonları current state queryRoles authorize eder (allow değilse 403); flow vs state önceliği. - workflow StartTransition: view almaz, schema (başlangıç verisi) alır; S2S vs client-base. x-lookup düzeltmesi: - data-akisi/schema-tanimi/view-yapisi: x-lookup hem tekil nesne hem dizi (ForEach) döndürür; filter binding takibiyle yeniden yükleme. EN mirror'lar parite olan sayfalarda güncellendi. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reviewer's GuideDocs PR that introduces a new reusable sys-mappings Mapping component and scripting configuration (helpers + sandbox), extends mapping encoding with REF references, documents schema-based filter/sort vocabulary and queryRoles behavior for read functions, and clarifies x-lookup single/array behavior and StartTransition semantics, with TR/EN cross-links and sidebar/tutorial updates. Sequence diagram for queryRoles behavior in read functionssequenceDiagram
actor Caller
participant DataFn as data/view/state/schema
participant Instance
participant State as currentState
Caller->>DataFn: data(instanceId,...)
DataFn->>Instance: load instance
Instance-->>DataFn: instance + currentStateId
DataFn->>State: load state definition
alt [state.queryRoles defined]
DataFn->>DataFn: [evaluate caller roles vs state.queryRoles]
else [no state.queryRoles]
DataFn->>DataFn: [evaluate caller roles vs flow attributes.queryRoles]
end
alt [result is allow]
DataFn-->>Caller: 200 OK + data
else [not allow or deny]
DataFn-->>Caller: 403 Forbidden
end
Flow diagram for schema-driven filterability and sortingflowchart TD
A[Client sends filter/sort on attributes.field] --> B[Data Function receives request]
B --> C[Read master schema for field]
C --> D{Has x-filterOperators?}
D -->|No or empty| E[Throw SchemaFilterValidationException]
D -->|Yes| F{Operator in x-filterOperators?}
F -->|No| E
F -->|Yes| G{Sorting requested?}
G -->|Yes| H{x-sortable == true?}
H -->|No or absent| E
H -->|Yes| I[Apply filter and order]
G -->|No| I
I --> J[Return filtered/sorted instances]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Warning Review limit reached
More reviews will be available in 6 minutes and 29 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (27)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Hey - I've found 1 issue, and left some high level feedback:
- For the new Mapping Component docs, the TR version includes a full top-level properties table while the EN version only documents
attributes; consider aligning their structure/sections so both locales expose the same information and are easier to maintain in sync. - You describe the
sys-mappingsencodingconstraint (noREF) in prose; it would be helpful to explicitly call out in one canonical place (e.g., a short "Constraints" or "Gotchas" subsection linked from other pages) that only mapping usages supportREFwhile mapping definitions do not, to reduce confusion for readers navigating between mappings, mapping-component, and interfaces.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- For the new Mapping Component docs, the TR version includes a full top-level properties table while the EN version only documents `attributes`; consider aligning their structure/sections so both locales expose the same information and are easier to maintain in sync.
- You describe the `sys-mappings` `encoding` constraint (no `REF`) in prose; it would be helpful to explicitly call out in one canonical place (e.g., a short "Constraints" or "Gotchas" subsection linked from other pages) that only mapping *usages* support `REF` while mapping *definitions* do not, to reduce confusion for readers navigating between mappings, mapping-component, and interfaces.
## Individual Comments
### Comment 1
<location path="docs/components/workflow.md" line_range="555" />
<code_context>
+Start transition **view tanımı alamaz** (tabloda `view` alanı bilinçli olarak yoktur); yalnızca `schema` ile **başlangıç verisi** ve validation tanımlanabilir. Bu, instance'ın hangi veriyle başlatılacağını belirler.
+
+- **Service-to-service (S2S) akışlar:** Start transition'da `schema` ile veri almak mantıklıdır; çağıran sistem başlangıç payload'ını doğrudan gönderir.
+- **Client-base akışlar:** Instance genellikle **base bilgiyle** başlatılır; kullanıcı girdisi (gerekiyorsa) start'ta değil, **initial state view**'inde alınır. Çünkü client tarafı girdiyi view üzerinden toplar.
+
+:::tip[Flow tasarım notu]
</code_context>
<issue_to_address>
**suggestion (typo):** “Client-base akışlar” ifadesi muhtemelen “Client-based akışlar” veya Türkçe bir karşılık olmalı.
Başlıkta muhtemelen “Client-based akışlar” ya da tamamen Türkçe bir ifade (örn. “client tabanlı akışlar”) kullanılmalı; mevcut hali yazım hatası gibi duruyor.
```suggestion
- **Client-based akışlar:** Instance genellikle **base bilgiyle** başlatılır; kullanıcı girdisi (gerekiyorsa) start'ta değil, **initial state view**'inde alınır. Çünkü client tarafı girdiyi view üzerinden toplar.
```
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| Start transition **view tanımı alamaz** (tabloda `view` alanı bilinçli olarak yoktur); yalnızca `schema` ile **başlangıç verisi** ve validation tanımlanabilir. Bu, instance'ın hangi veriyle başlatılacağını belirler. | ||
|
|
||
| - **Service-to-service (S2S) akışlar:** Start transition'da `schema` ile veri almak mantıklıdır; çağıran sistem başlangıç payload'ını doğrudan gönderir. | ||
| - **Client-base akışlar:** Instance genellikle **base bilgiyle** başlatılır; kullanıcı girdisi (gerekiyorsa) start'ta değil, **initial state view**'inde alınır. Çünkü client tarafı girdiyi view üzerinden toplar. |
There was a problem hiding this comment.
suggestion (typo): “Client-base akışlar” ifadesi muhtemelen “Client-based akışlar” veya Türkçe bir karşılık olmalı.
Başlıkta muhtemelen “Client-based akışlar” ya da tamamen Türkçe bir ifade (örn. “client tabanlı akışlar”) kullanılmalı; mevcut hali yazım hatası gibi duruyor.
| - **Client-base akışlar:** Instance genellikle **base bilgiyle** başlatılır; kullanıcı girdisi (gerekiyorsa) start'ta değil, **initial state view**'inde alınır. Çünkü client tarafı girdiyi view üzerinden toplar. | |
| - **Client-based akışlar:** Instance genellikle **base bilgiyle** başlatılır; kullanıcı girdisi (gerekiyorsa) start'ta değil, **initial state view**'inde alınır. Çünkü client tarafı girdiyi view üzerinden toplar. |
There was a problem hiding this comment.
Code Review
This pull request updates the vNext documentation to cover the new Mapping Component (sys-mappings), scripting/sandbox configurations, schema-driven filtering and sorting vocabulary, query-roles authorization, and lookup enhancements. The reviewer's feedback focuses on improving markdown formatting and link stability: specifically, changing a namespace list's syntax highlighting block from csharp to plaintext in scripting.md, and replacing the & character with and in several headers across the markdown files to prevent broken auto-generated anchor links.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
|
||
| Her script bağlamına otomatik eklenen namespace'ler: | ||
|
|
||
| ```csharp |
There was a problem hiding this comment.
|
|
||
| `attributes.functions` ve `attributes.extensions` alanları, workflow'a bağlı function ve extension **reference** listelerini içerir. Her öğe standart `reference` yapısındadır. | ||
|
|
||
| ### Scripts (Helpers & Allowed Assemblies) |
There was a problem hiding this comment.
Başlıkta & karakterinin kullanılması (### Scripts (Helpers & Allowed Assemblies)), otomatik oluşturulan bağlantı hedeflerinde çift tire (--) oluşmasına yol açar (#scripts-helpers--allowed-assemblies). Markdown standartları ve farklı tarayıcı/platform uyumluluğu için & yerine and kullanılması önerilir. Bu değişikliği yaptığınızda, bu başlığa referans veren diğer dosyalardaki (örneğin docs/components/mapping-component.md içindeki) bağlantıları da güncellemeniz gerekecektir.
|
|
||
| --- | ||
|
|
||
| ## Schema-Driven Filterability & Sorting |
There was a problem hiding this comment.
Başlıkta & karakterinin kullanılması (## Schema-Driven Filterability & Sorting), otomatik oluşturulan bağlantı hedeflerinde çift tire (--) oluşmasına yol açar (#schema-driven-filterability--sorting). Bu durum bazı markdown ayrıştırıcılarında bağlantıların kırılmasına neden olabilir. Daha güvenli ve standart bir yapı için & yerine and kullanılması önerilir. Bu değişikliği uyguladığınızda, 71, 185 ve 469. satırlardaki bağlantıları da #schema-driven-filterability-and-sorting olarak güncellemeniz gerekecektir.
|
|
||
| The same system roles and JSONPath grant prefixes (`$user.` / `$userBehalfOf.` / `$role.`) apply; see [Authorization](/docs/concepts/authorization). `x-encryption` is in the same field-governance scope (`persisted` / `transport`). | ||
|
|
||
| ### Filter & Sort Vocabulary |
There was a problem hiding this comment.
Başlıkta & karakterinin kullanılması (### Filter & Sort Vocabulary), otomatik oluşturulan bağlantı hedeflerinde çift tire (--) oluşmasına yol açar (#filter--sort-vocabulary). Daha temiz ve sağlam bağlantı yapıları için & yerine and kullanılması önerilir. Bu değişikliği uyguladığınızda, instance-filtering.md dosyasındaki (85 ve 488. satırlar) ilgili bağlantıları da #filter-and-sort-vocabulary olarak güncellemeniz gerekecektir.
|
|
||
| Defines the list of **extensions** that will run for the flow and instance. Extensions enrich instance data. | ||
|
|
||
| ### Scripts (Helpers & Allowed Assemblies) |
There was a problem hiding this comment.
Başlıkta & karakterinin kullanılması (### Scripts (Helpers & Allowed Assemblies)), otomatik oluşturulan bağlantı hedeflerinde çift tire (--) oluşmasına yol açar (#scripts-helpers--allowed-assemblies). Daha temiz ve sağlam bağlantı yapıları için & yerine and kullanılması önerilir. Bu değişikliği uyguladığınızda, mapping-component.md dosyasındaki (70 ve 105. satırlar) ilgili bağlantıları da #scripts-helpers-and-allowed-assemblies olarak güncellemeniz gerekecektir.
Özet
PR #11 (x-roles) sonrası biriken platform gelişmelerini tutarlı çapraz referanslarla dökümante eder. Kaynaklar:
custom_helpers_pln.md, güncelvnext-schemaJSON şemaları vevnext-exampleçalışan bileşenleri.1) Mappings (sys-mappings) bileşeni + scripts + REF + Scripting
components/mapping-component— yeniden kullanılabilir/versiyonlu C# script helper'ları;scripts(helpers[]+allowedAssemblies[]);REFencoding (kod yerine sys-mappings referansı); plugin/3rd-party assembly gömme. json-helper / rsa-crypto / initial-mapping örnekleri. EN mirror dahil.configuration/scripting—Scripting.Helpers,Sandbox(AllowUnsafe, PluginDirectory, AllowedAssemblies, BannedNamespaces), varsayılan ban listesi, default usings/references.workflowattributes.scripts+ "Scripts" ve "REF" bölümleri;extension/functions/index/functions/custom/how-to/view-selectionencoding tablolarınaREF+scripts;mappingsrehberi REF;interfacesnotu.tutorialklasör ağacınaMappings/;forge-studio'ya REF picker dialog notu;sidebars.tsiki yeni giriş.2) Filtreleme/Sıralama vocabulary'si (
x-filterOperators/x-sortable/x-displayFormat)components/schema(keyword evi) +how-to/instance-filtering(tip-operatör/SQL davranışı, kurallar,SchemaFilterValidationException,includes/InputValidator);schema-tanimidesigner girdileri.3) State QueryRoles etki alanı + StartTransition davranışı
functions/built-in/workflow/authorization: state/data/view/schema read fonksiyonları, instance'ın current statequeryRoles'una göre authorize eder;allowdeğilse 403. Flow (root) vs state önceliği netleştirildi.workflowStartTransition: view almaz, yalnızschema(başlangıç verisi); S2S vs client-base tasarım rehberi.4) x-lookup düzeltmesi
data-akisi/schema-tanimi/view-yapisi:x-lookuphem tekil nesne hem dizi (ForEach) döndürür;filterile binding takibi üzerinden yeniden yükleme.Doğrulama
npm run buildher iki locale'de (tr + en) başarılı. Yeni broken-link/anchor yok (kalan 4 anchor uyarısı pre-existing blog-archive sorunları).workflow"Scripts" başlığı ASCII slug ile iki locale'de hizalı.Reviewer notu
EN mirror'lar kısmi; yapısal eklemeler (REF, scripts, queryRoles, filtreleme) yalnızca ilgili tablo/bölüm EN'de mevcutsa uygulandı, eksikler TR-fallback'e bırakıldı.
Summary by Sourcery
Document reusable mapping helpers (sys-mappings) with REF-based script sharing, formalize schema-driven filtering/sorting vocabulary, and clarify queryRoles authorization and start transition behavior across workflow docs.
New Features:
x-filterOperators,x-sortable,x-displayFormat) and how it drives instance filtering and ordering in both TR and EN docs.Enhancements:
scriptsconfiguration, REF encoding usage, and detailed queryRoles precedence and enforcement by built-in read functions.x-lookup) docs to cover array results, ForEach usage, and reload-on-binding-change behavior, updating binding tables accordingly.Documentation: