본문으로 건너뛰기

Template Marketplace와 Organization Library · V2

상태와 권위

이 문서는 Flow·Project template Marketplace의 제품 경계를 설명하는 계획입니다. TemplateRelease의 persisted shape, serialization이나 활성화를 승인하는 기계 권위가 아닙니다. 현재 sharing profile도 availability: contract_only이며 full TemplateRelease shape과 V2 control-plane migration을 blocker로 유지합니다.

Component template과 packTemplate의 활성화 경계는 이 문서가 소유하지 않습니다. Component Node의 규범적 권위는 「Component container V2와 서드파티 Node UI」입니다. 해당 V2는 availability: contract_only이고 settings를 component-declared-settings@1로 선언당 최대 8개까지 받고 host control registry가 그리며, package renderer·template asset을 허용하지 않습니다. Project 격리와 실행 trust P0가 닫히기 전 production의 모든 서드파티 Component 설치·실행은 계약상 허용하지 않습니다. 현재 runtime gate가 구현됐다는 주장이 아니며, 검증 전까지 product activation을 끄라는 fail-closed 정책입니다.

Template target union

이 계약이 예약한 Template target kind는 sharing profile의 exact ordered union과 같은 세 종류입니다.

kindexact sourcedestination effect
flowimmutable Flow revision새 PXFLOW-native Flow
projectimmutable Project revision과 closure새 Project
packTemplatesigned package/version + ComponentRef + template key/versionComponent Node setting 적용

이 표는 sharing profile templateAndCatalog.targetMatrix의 human projection입니다. flowproject만 이 문서가 제품 경계로 설명하는 target이고, packTemplate row는 contract-only 미래 vocabulary 예약입니다. Component template release의 serialized shape나 설치·적용 권한이 아니며, 현재 writer·reader·installer에서 받으면 안 됩니다. 별도 versioned Component settings/template contract와 RFC-014 rich-surface admission이 승인된 뒤 successor가 target shape, compatibility, migration과 fixture를 함께 정의해야 합니다. 기존 V1 bytes와 non-empty settings를 읽는 호환성은 소급해 없애지 않지만, 그 호환성이 Component template target을 활성화하지는 않습니다.

TemplateRelease 경계

Flow·Project Template release는 immutable이어야 합니다. Listing은 stable template key와 active offered release를 가리키며 기존 consumer object를 자동 update하지 않습니다. 다만 exact persisted members와 lifecycle은 아직 승인되지 않았으므로 이 문서에서 예시 JSON으로 미리 고정하지 않습니다.

CatalogListing

Listing은 title, description, publisher, preview, tags, compatibility, license offer와 current release를 검색 가능하게 표시합니다. Listing을 볼 수 있다는 사실은 source access나 사용 권한을 부여하지 않습니다.

권리와 조직 배정

객체역할
TemplateLicenseGrant개인·조직이 exact template 범위를 사용할 권리
OrganizationLibraryEntry조직이 확보한 template와 current offered release
TemplateAllocationall/group/person 사용 대상과 optional approval policy

사용 시 license, allocation, approval과 destination permission을 각각 검사합니다.

Apply plan

Apply plan은 exact destination revision을 precondition으로 사용하고 Run과 artifact 생성을 포함하지 않습니다.

Update

Update plan은 current source release와 candidate release 사이의 semantic diff를 계산합니다. 사용자 customization, Node binding과 document draft를 자동 교체하지 않습니다.

보안

  • Preview resource는 sanitized, bounded와 expiring이어야 합니다.
  • secret, credential, local permission handle과 private source를 release에 포함하지 않습니다.
  • Flow·Project template preview asset은 content closure와 digest에 포함합니다.
  • Component package renderer·template code·HTML/CSS/JS·font·preview asset을 이 계약으로 허용하지 않습니다.
  • license나 allocation으로 destination ACL을 우회하지 않습니다.

불변식

다음 목록은 sharing profile templateAndCatalog.invariants의 exact ordered human projection이며, packTemplate을 언급하는 항목은 availability: contract_only 어휘에만 적용합니다. Component template·packTemplate의 serialization·게시·적용은 별도 versioned settings/template contract와 RFC-014 rich-surface admission 승인 뒤 successor가 엽니다.

  1. Template release는 immutable입니다.
  2. Flow/Project/Component template을 같은 target kind로 추측하지 않습니다.
  3. Component template은 exact Component setting에 적용합니다.
  4. Apply는 exact destination revision과 사용자 승인을 요구합니다.
  5. Template 사용은 Run이나 artifact 생성을 암묵적으로 수행하지 않습니다.