본문으로 건너뛰기

Core

개발자 콘솔과 현재 App 계약

0.6.0

SDK 0.6.0과 함께 프로젝트 연결, 로컬 개발, 배포 심사를 제공합니다.

추가

  • 개발자 계정, 프로젝트 소유권, 해제 가능한 CLI 연결, 변경 불가능한 배포 버전과 관리자 심사를 갖춘 개발자 콘솔을 추가했습니다. 조회 문서는 프로젝트 연결·관리, Manifest 검사와 심사 제출을 지원한다고 응답합니다. 원격 Function은 아직 제공하지 않습니다. 전용 샌드박스 호스트는 만료 기한과 소유자 입장 권한을 갖춘 프로젝트별 Nexia 워크스페이스를 제공합니다.

  • CLI 0.1.0-alpha.3에서 스타터 생성, 실제 Nexia 작업 탭 안의 로컬 앱 자동 새로고침과 정적 번들 심사 제출을 지원합니다. 콘솔은 수동·Docker·AI 개발 안내를 제공합니다. Core는 운영자 서버에서 실행하며 개발자 소스·Docker 이미지에 포함하지 않습니다. 연결 비밀은 소스 밖에 저장하며 서버 실행 파일, 숨김 파일과 경로 이탈 파일의 제출을 거절합니다.

  • 심사자는 제출된 소스와 격리된 미리보기를 확인하고 결정을 기록할 수 있습니다. 제출만으로 테넌트에 App이 공개되지는 않습니다.

  • App이 공개 SDK 계약으로 업무 결과 알림을 기여하고 영속 이벤트에서 발행할 수 있습니다. Core의 수신자 권한 검사, 알림 설정, 언어별 표시 경로를 사용합니다.

  • 정책 기반 자동승인은 적용 정책 버전과 평가 근거를 사람의 서명과 구분해 보존하고, 업무 리소스에 연결된 결재 결과에서 자동 결정을 식별할 수 있도록 합니다.

  • 체크섬으로 검증한 비공개 시딩 파일을 사용하는 nexia-seed:import --profile=mytec을 추가했습니다. 기존 테넌트에 데이터를 넣거나 일반 앱 설치 절차로 테넌트를 생성할 수 있으며, --apply가 없으면 읽기 전용 검증만 수행합니다. 선택적 --reset은 계정·조직·앱 설치를 유지하면서 지원 범위의 업무 데이터를 초기화하고, 미지원 데이터나 보존 대상 참조가 있으면 중단합니다. 데이터 파일은 비공개 저장소에 별도로 전달하고 신규 소유자 비밀번호는 MYTEC_SEED_IMPORT_PASSWORD로 지정합니다. 대응하는 앱 시딩 코드를 함께 반영해야 하며 SDK·스키마 변경은 필요하지 않습니다.

변경

  • 플랫폼·개발·테스트·관리·인증·인프라·AI 서비스용 호스트 이름을 테넌트 가입 전에 예약합니다. 도메인 생성과 변경에 같은 예약 규칙을 적용하며, 대소문자나 전체 플랫폼 도메인으로 우회할 수 없습니다. 별도 고객 도메인은 계속 사용할 수 있습니다.

  • Agent 대시보드 생성은 새 리포트를 만들기 전에 일치하는 등록 레시피, 기존 위젯, 사용 가능한 리포트를 우선 사용합니다. 새 리포트 기반 위젯은 카탈로그 미리보기에서 확인한 데이터 형태, 집계 단위, 라벨, 기간, 범위와 표현 방식을 기준으로 구성합니다.

  • dashboard.compose(final:false)는 리포트 기반 보완 항목을 준비하는 동안 일부 등록 위젯 구성을 유지합니다. final을 생략하면 기존처럼 대시보드를 즉시 완성합니다.

  • 새로 생성한 리포트 위젯은 처음 표시할 때 콘텐츠 높이에 맞춰 배치합니다. 이미 저장했거나 직접 배치한 대시보드의 크기와 위치는 유지합니다.

  • 여러 법인이나 전체 범위로 조회한 리포트에서도 조회 권한이 있는 운영 단위의 이름을 표시합니다. 리포트 탐색 선택 항목도 내부 식별자 대신 같은 이름을 사용하며, 확인할 수 없는 참조는 식별할 수 없게 유지합니다.

  • Resource Composition은 하나의 현재 schema-1 계약을 사용합니다. 명시적인 population을 요구하고 typed predicate에는 where를 사용하며, 버전 협상이나 rollout flag 없이 capabilities.composition.features의 의미 기능을 공개합니다.

  • 현재 composition planner는 제한된 native source, inverse, forward exact-reference, canonical alignment, temporal 경로를 지원합니다. 선언된 decimal 결과는 canonical numeric string으로 반환하며, 지원하지 않는 shape, 모호한 기간 매칭, 잘못된 owner 기간, provider grain 중복 또는 NULL은 실행 snapshot에서 거절합니다.

  • 정방향 다형 참조는 owner가 공개한 discriminator를 결합하므로 다른 target의 같은 public ID가 연결되지 않습니다. 지원되는 native 및 forward aggregate 계획의 pivot rollup은 권한 있는 source 데이터를 별도로 다시 계획해 계산합니다.

  • Agent 리포트 생성과 조회는 현재 source 접근 권한을 다시 확인합니다. 집중 lifecycle 흐름은 source App을 비활성화한 뒤 export와 schedule도 거절합니다.

  • npm 패키지를 @nexia 조직으로 이전합니다. @amuzcorp/nexia-app-sdk-react는 @nexia/sdk, @amuzcorp/nexia-cli는 @nexia/cli로 변경되며 개발 패키지는 @nexia/dev-client, @nexia/dev-protocol을 사용합니다.

  • 개발자 계정은 프로덕션 워크스페이스 계정 및 구독과 독립적입니다. 계정당 활성 샌드박스 1개를 제공하며 생성 중·삭제 중에도 해당 자리를 사용합니다. 소유자는 연장 시점부터 7일로 갱신하거나 삭제 후 새로 생성할 수 있습니다. 삭제된 샌드박스 기록과 생성·연장·삭제 이력은 보존합니다. 만료된 샌드박스는 접근을 차단하고, 다른 활성 샌드박스가 없을 때만 다시 연장할 수 있습니다.

수정

  • 개발자 샌드박스 삭제 시 비공개·공개 객체 저장소의 해당 샌드박스 경로도 정리하고 수명 이력은 보존합니다. 정리에 실패하면 삭제를 다시 완료할 때까지 활성 샌드박스 자리를 유지합니다.

  • 데모 리포트 재시딩에서 제공자의 데이터 단위 검증과 리포트 실행에 동일한 스냅샷을 사용합니다. 변경하지 않은 오래된 리포트를 새 리비전으로 갱신하고, 확인 모드의 롤백도 유지합니다.

  • Resource Composition의 큰 금액이 집계와 리포트 표시 과정에서 부동소수점 변환으로 손실되지 않도록 정확한 값을 유지합니다.

  • 목록 행을 선택하지 않고 상세 화면에서 연 관련 항목 Inspector에도 닫기 버튼을 표시합니다.

  • 시딩 중 메시지가 없는 오류가 발생해도 예외 종류와 HTTP 상태를 표시하고 실패 기록에도 남깁니다.

  • 이미 설치한 앱에 새 권한이 추가된 경우에도 시딩 전에 선택한 테넌트의 권한 목록을 동기화합니다. 확인 모드에서는 데이터를 변경하지 않습니다.

업그레이드 필요

  • Core 0.6.0 적용 전에 PHP·React SDK 0.6.0과 대응 App 릴리스를 설치하세요. 개발자 작업 공간 테이블을 생성하도록 중앙 마이그레이션을 실행하세요. 개발자 계정과 CLI 연결은 테넌트·관리자 인증과 분리됩니다.

  • 이 Core 변경보다 먼저 알림·자동승인 계약이 포함된 SDK를 반영하고, 테넌트 마이그레이션과 권한 카탈로그 동기화를 실행해야 합니다. App의 사실 제공자가 등록된 결재 바인딩에 관리자가 정책을 활성화해야 자동승인이 적용됩니다.

  • 선택적 period_stock, demand_orders 데이터셋은 해당 Inventory·Demand Planning fixture App 버전, 테넌트 마이그레이션, 설치된 대응 App이 모두 있어야 가져올 수 있습니다. 이 데이터셋이 없는 기존 번들은 계속 유효합니다. 기존 테넌트에는 --apply를 사용한 증분 번들을 --reset 없이 적용하세요.

  • 현재 schema-1 계약을 사용하기 전에 저장된 개발 데이터를 초기화하세요. 이전 Resource Composition payload shape는 runtime에서 변환하지 않습니다. descriptor와 provider가 필요한 참조, 기간 metadata, discriminator binding, 인가된 source field를 공개하도록 일치하는 App SDK와 owner App 릴리스를 설치해야 합니다.

  • npm 의존성과 import 이름을 바꾸고 의존성 잠금 파일을 다시 생성하세요. SDK의 /host, /testing 하위 경로도 포함합니다. 기존에 게시한 버전과 배포 태그는 새 이름에서도 유지되므로 버전 조건은 그대로 사용할 수 있습니다.

  • CLI는 npm install --global @nexia/cli@alpha로 설치하세요. 실행 명령은 nexia로 유지됩니다.

  • 이전 후 기존 @amuzcorp npm 패키지는 제거됩니다. 다시 설치하기 전에 기존 npm 잠금 파일과 import를 갱신하세요. 이전 이름으로는 설치할 수 없습니다.

  • Composer 패키지 이름, PHP 네임스페이스, GitHub 저장소는 변경하지 않습니다. 이미 발표한 릴리스 기록은 당시 이름을 보존합니다.

  • 개발자 콘솔 제공 전에 새 Central 수명 관리 및 외래키 인덱스 마이그레이션을 적용하세요. APP_ENV=developers와 포함된 Horizon 작업자 설정을 사용해야 샌드박스 생성 작업이 처리됩니다. 제거된 DEVELOPER_SANDBOXES_PER_ACCOUNT 설정은 활성 1개 정책을 변경하지 않습니다.

  • 개발 환경에서 PRODUCT_STORAGE_PROXY_UPLOADS=true를 설정하면 인증된 Upload Intent API를 통해 비공개 버킷에 업로드하므로 샌드박스별 CORS 규칙이 필요하지 않습니다.