액션 로그로 결정과 맥락 기록
액션 로그(Action log)는 성공한 액션 제출을 온톨로지 객체로 기록합니다. 누가 언제 어떤 결정을 했는지, 그 결정 당시 어떤 입력과 업무 상태를 사용했는지 분석할 수 있습니다. 자동 생성한 로그 객체 유형의 표시 이름은 [Log] <action type name>, 복수형 표시 이름은 [Logs] <action type name> 형식입니다.
기록 범위와 다른 기능
| 확인하려는 내용 | 기능 |
|---|---|
| 결정한 사람, 시각과 업무 맥락 | 액션 로그 |
| 편집 경로와 관계없이 객체에 적용된 사용자 편집 전체 | 객체 편집 이력(Edit history) |
| 액션 성공과 실패 횟수, 실행시간 | 액션 지표 |
| 액션이 적용한 객체 편집 복원 | 액션 되돌림 |
| 실패나 지연이 임계값을 넘을 때 경보 | 액션 모니터링 |
액션 로그는 성공한 제출만 기록합니다. 실패는 액션 지표에서 확인해야 합니다. 또한 액션 유형을 거친 편집만 기록하므로, 기반 데이터소스에 직접 쓴 값이나 레거시 Foundry Forms의 쓰기 작업은 액션 로그 객체를 만들지 않습니다.
판별 기준은 사용한 클라이언트가 아니라 편집 경로입니다. API나 SDK로 액션 유형을 실행해도 로그를 생성하며, 액션 기반으로 작동하는 Object Explorer의 인라인 편집도 기록합니다.
로그 생성과 로그 필수 정책
Ontology Manager에는 서로 독립적인 두 설정이 있습니다.
특정 액션의 로그 생성
액션 유형의 Capabilities 탭에서 Create action log objects를 활성화합니다. 이 기능은 성공한 액션 제출마다 객체 하나를 생성합니다. Generate object type을 선택하여 로그를 저장할 객체 유형을 만듭니다.
특정 객체 유형의 모든 액션에 로그 요구
객체 유형의 Datasources 탭에서 Edits의 Only allow Action types with action logs를 활성화합니다. 이 객체 유형을 편집하는 모든 액션은 로그가 있어야 실행할 수 있습니다.
해당 설정이 보이지 않으면 먼저 객체 편집 허용의 Allow edits를 켜고 저장한 뒤 Datasources로 돌아갑니다. Allow edits를 다시 끄면 로그 필수 설정도 해제됩니다.
로그 객체와 편집 대상의 관계
액션 유형 하나에는 로그 객체 유형 하나가 대응합니다. 한 번 제출할 때 로그 객체 하나를 만들고 그 제출에서 편집한 모든 객체에 자동으로 연결합니다.
가상의 Close Alerts 액션으로 Alert 객체 10개의 Status를 Closed로 바꾸면, 로그 객체 하나와 그 로그에서 10개 Alert로 이어지는 외래 키 링크를 생성합니다. 로그를 사용하는 액션의 제출자는 로그 객체 유형에 대해서도 다른 생성 또는 수정 대상과 마찬가지로 필요한 권한을 충족해야 합니다. 자세한 조건은 액션 권한에 따릅니다.
필수 기록 값
Create action log objects의 Values to log에는 Required values와 Optional values가 있습니다. 필수 값은 구성에서 제거할 수 없습니다.
| 필수 값 | 의미 |
|---|---|
Action RID | 단일 액션 제출의 고유 식별자 |
Action type RID | 액션 유형의 고유 식별자 |
Action type version | 액션 유형을 갱신할 때마다 자동 증가하는 버전 |
Current timestamp | UTC 시각. OSv2에서는 커밋 시각을 사용합니다. |
Current user | 제출한 사용자의 Multipass 사용자 ID |
Edited objects | 편집한 모든 객체의 기본 키 값 |
Edited objects에서 기본 키 이외의 객체 속성을 함께 저장하는 기능은 지원하지 않습니다.
다음 실행 맥락도 필수 값에 포함됩니다.
- 액션이 호출한 동기 및 비동기 웹훅의 식별자
- 액션이 보낸 알림의 식별자와 수신 사용자
- 시나리오에서 실행했다면 해당 시나리오의 RID
- 되돌림 여부와 되돌린 사용자 및 시각
선택 값으로 업무 맥락 보존
선택 값에는 액션 매개변수 값과 객체 참조 매개변수의 속성 값을 추가할 수 있습니다. 객체 참조의 속성은 단일 값 입력일 때만 기록할 수 있으며, allow multiple values를 켠 참조 입력에서는 지원하지 않습니다.
액션이 수정하지 않은 속성도 이 단일 객체 참조를 통해 기록할 수 있습니다. 예를 들어 개별 Alert를 참조한 입력에서 Priority의 High Priority 또는 Low Priority, Created at 시각과 Source 장비를 기록하면 높은 우선순위 경보의 발생 장비나 종료까지 걸린 시간을 분석할 수 있습니다.
여러 Alert를 목록으로 받는 앞의 10개 종료 사례가 각 Alert의 모든 속성까지 자동으로 저장한다는 의미는 아닙니다. 편집 대상 목록은 기본 키를 기록하며, 추가 속성에는 단일 객체 참조 입력 조건을 적용합니다.
읽기 쉬운 요약
Summary는 Values to log 위에서 별도로 구성합니다. 액션에서 일어난 일을 설명하는 문자열을 입력하고 /로 매개변수를 참조할 수 있습니다.
요약은 최대 20개 부분(Part)으로 구성합니다. 리터럴 텍스트 부분 하나에는 최대 50자를 넣을 수 있습니다. 50자 제한은 매개변수 부분에는 적용하지 않습니다. 요약에서 객체 유형 매개변수(object type parameter)를 참조하는 기능은 지원하지 않습니다.
시각의 의미
Object Storage v2에서는 액션 로그와 객체 편집 이력이 같은 커밋 시각을 사용합니다. 액션이 저장소로 편집을 제출할 준비를 할 때 이 UTC 시각을 정합니다. 질의에서 편집 결과가 보이기 시작한 정확한 시각을 나타내지는 않습니다.
규칙의 Current User/Time이 제공하는 시각은 액션 실행이 시작된 시각이며, 실행 중 고정됩니다. 가령 12:00:00 UTC에 실행을 시작하고 12:00:05 UTC에 저장소 제출을 준비했다면 규칙 값은 12:00:00, 액션 로그와 편집 이력은 12:00:05를 사용합니다.
액션을 되돌려도 원래 로그 시각은 유지하며, 되돌림 시각을 별도 필드에 기록합니다.
자료형, 기록 시작점과 편집 한도
로그 속성의 자료형은 생성 후 변경할 수 없습니다. 연결한 원천 속성의 자료형이 바뀌면 액션 유형의 검증이 실패합니다. 새 자료형을 가진 로그 속성을 만들고 매핑을 새 속성으로 바꾸어야 합니다.
미디어 참조를 사용하는 매개변수는 액션 로그에서 제외됩니다. 로그를 켠다고 과거 제출을 소급해서 기록하지도 않습니다. 구성을 저장한 시점부터 기록합니다.
로그 객체에도 일반 객체와 동일한 편집 규모 및 속성 한도가 적용됩니다. 업무 객체 외에 로그 객체가 추가된다는 점을 편집량 계산에 포함해야 합니다. 다만 액션의 최소 쓰기 보안 경계는 플랫폼이 관리하는 로그 쓰기에 적용되지 않습니다.
함수 기반 액션에 로그를 연결하려면 기반 온톨로지 편집 함수에 Edits provenance를 설정해야 합니다. 함수가 어떤 유형을 편집하는지 선언하는 정보이며, 함수 기반 액션 구성에서 이를 함께 설정합니다.
Workshop에서 표시
Action Log Timeline 위젯에서 편집 대상 객체 유형을 선택한 뒤 표시할 로그 객체 유형과 속성을 선택합니다. 여러 로그 객체 유형을 합집합으로 묶어 업무 사례나 온톨로지 전체의 결정을 함께 볼 수 있습니다.
Comments 위젯은 객체 댓글과 액션 로그를 하나의 피드에 표시할 수 있습니다.
구성 오류 해결
| 메시지 | 원인과 조치 |
|---|---|
Action Log required but not enabled | 편집 대상 객체 유형이 로그를 요구하지만 액션에 로그가 없습니다. 액션의 Capabilities에서 Create action log objects를 켭니다. |
Associated object type is missing. Logs are not being recorded. | 연결한 로그 객체 유형이 없어 로그를 기록하지 않습니다. Generate object type으로 새 유형을 생성합니다. |
Action log has no writeback dataset defined | 이 오류를 표시하는 로그 구성에는 로그 객체를 저장할 쓰기용 데이터셋이 없습니다. 로그 객체 유형의 Writeback datasource를 구성합니다. |
This property will not be used for logging until indexing is complete. | 새 로그 속성의 인덱싱을 기다리는 상태입니다. 인덱싱이 끝나면 해당 속성을 기록합니다. |
Function has no Edits Decorator | 기반 함수에 로그에 필요한 Edits provenance 선언이 없습니다. 함수의 편집 대상 선언을 구성합니다. |
오류 메시지의 action log rule은 액션 Capabilities 탭의 Create action log objects 설정을 가리킵니다. 쓰기용 데이터셋 오류의 해결 절차를 일반 OSv2 객체 편집의 필수 데이터셋 요건으로 확대해 해석하지 않습니다.