Skip to content

Bereitstellungsanleitung

Diese Anleitung führt durch den vollständigen Lebenszyklus einer Aster-CNL-Richtlinie: Verfassen, Validieren, Bereitstellen auf der Engine, Ausführen gegen Live-Daten und Verwalten von Versionen über die Zeit.

Richtlinien-Lebenszyklus

Verfassen  -->  Validieren  -->  Bereitstellen  -->  Ausführen  -->  Überwachen
  |              |                |               |               |
  |  CNL         |  Syntax       | POST an       | POST an       | Audit-
  |  schreiben   |  prüfen       | /policies     | /evaluate     | Protokolle
  |              |                |               |               | abfragen

Jede Phase kann über die REST API, die Browser-API oder eine Kombination aus beiden durchgeführt werden.

Schritt 1 — Richtlinie verfassen

Schreiben Sie Ihre Richtlinie in Aster CNL mit einem beliebigen Texteditor oder dem Spielplatz. Eine vollständige Richtlinie umfasst eine Moduldeklaration, optionale Struct-Definitionen und eine oder mehrere Regeln.

Module Loan.Approval.

Define Applicant has creditScore as Int, income as Int, age as Int.

Rule isEligible given applicant as Applicant, requestedAmount as Int, produce Bool:
  If applicant.age < 18:
    produce false
  If applicant.creditScore < 650:
    produce false
  If applicant.income < requestedAmount * 3:
    produce false
  produce true

Speichern Sie diesen Text in einer Datei (z.B. loan-approval.aster) oder behalten Sie ihn als String in Ihrem Bereitstellungsskript.

Schritt 2 — Lokal validieren

Validieren Sie die Richtlinie vor der Bereitstellung, um Syntaxfehler frühzeitig zu erkennen.

Browser-API-Validierung:

js
import { validateSyntaxWithSpan, EN_US } from '@aster-cloud/aster-lang-ts/browser'

const source = fs.readFileSync('loan-approval.aster', 'utf-8')
const errors = validateSyntaxWithSpan(source, EN_US)

if (errors.length > 0) {
  errors.forEach(e => {
    const loc = e.span ? ` (L${e.span.start.line}:${e.span.start.col})` : ''
    console.error(`ERROR${loc}: ${e.message}`)
  })
  process.exit(1)
}

console.log('Validation passed.')

Schritt 3 — Schema extrahieren

Vor der Bereitstellung extrahieren Sie das Parameter-Schema, damit nachgelagerte Konsumenten genau wissen, welche Eingabeform bereitzustellen ist.

bash
curl -s -X POST https://policy.aster-lang.dev/api/v1/policies/schema \
  -H "Authorization: Bearer $ASTER_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Tenant-ID: $ASTER_TENANT_ID" \
  -d "{
    \"source\": $(jq -Rs . < loan-approval.aster),
    \"functionName\": \"isEligible\",
    \"locale\": \"en-US\"
  }"

Schritt 4 — Richtlinie bereitstellen

Übermitteln Sie den Richtlinienquellcode an die Engine. Die Engine kompiliert, speichert und aktiviert ihn.

bash
curl -s -X POST https://policy.aster-lang.dev/api/v1/policies \
  -H "Authorization: Bearer $ASTER_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Tenant-ID: $ASTER_TENANT_ID" \
  -d "{
    \"source\": $(jq -Rs . < loan-approval.aster),
    \"locale\": \"en-US\",
    \"notes\": \"Initial deployment of loan eligibility policy\"
  }"

Eine erfolgreiche Bereitstellung gibt die Richtlinien-ID und die Versionsnummer zurück:

json
{
  "policyId": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
  "version": 1,
  "moduleName": "Loan.Approval",
  "functionName": "isEligible",
  "active": true
}

Schritt 5 — Richtlinie ausführen

Nach der Bereitstellung evaluieren Sie die Richtlinie, indem Sie auf Modul und Funktionsname verweisen.

bash
curl -s -X POST https://policy.aster-lang.dev/api/v1/policies/evaluate \
  -H "Authorization: Bearer $ASTER_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Tenant-ID: $ASTER_TENANT_ID" \
  -d '{
    "policyModule": "Loan.Approval",
    "policyFunction": "isEligible",
    "context": [
      {
        "creditScore": 720,
        "income": 85000,
        "age": 34
      },
      10000
    ]
  }'

Schritt 6 — Überwachen und auditieren

Audit-Protokolle einsehen

Jede Evaluierung erzeugt einen Audit-Datensatz. Fragen Sie das Audit-Protokoll ab, um Entscheidungen zu überprüfen:

bash
curl -s -X GET \
  "https://policy.aster-lang.dev/api/v1/audit/logs?policyModule=Loan.Approval&limit=10" \
  -H "Authorization: Bearer $ASTER_TOKEN" \
  -H "X-Tenant-ID: $ASTER_TENANT_ID"

Hash-Ketten-Integrität überprüfen

bash
curl -s -X POST https://policy.aster-lang.dev/api/v1/audit/verify-chain \
  -H "Authorization: Bearer $ASTER_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Tenant-ID: $ASTER_TENANT_ID" \
  -d '{"policyModule": "Loan.Approval"}'

Versionsverwaltung

Versionen auflisten

bash
curl -s -X GET \
  "https://policy.aster-lang.dev/api/v1/policies/$POLICY_ID/versions" \
  -H "Authorization: Bearer $ASTER_TOKEN" \
  -H "X-Tenant-ID: $ASTER_TENANT_ID"

Auf eine frühere Version zurücksetzen

bash
curl -s -X POST \
  "https://policy.aster-lang.dev/api/v1/policies/$POLICY_ID/rollback" \
  -H "Authorization: Bearer $ASTER_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Tenant-ID: $ASTER_TENANT_ID" \
  -d '{
    "targetVersion": 1,
    "reason": "Version 2 incorrectly rejects applicants with income between 45000-49999"
  }'

Das Rollback ist atomar — nachfolgende Evaluierungsanfragen verwenden sofort die wiederhergestellte Version.

Bereitstellungs-Checkliste

SchrittBefehl / AktionStatus
Syntaxvalidierung bestandenvalidateSyntaxWithSpan() gibt [] zurück
Schema stimmt mit erwartetem Vertrag übereinextractSchema() gibt korrekte Parameter zurück
Testevaluierung liefert erwartetes ErgebnisPOST /evaluate-source mit bekannten Eingaben
Richtlinie bereitgestelltPOST /policies gibt policyId und version zurück
Live-Evaluierung bestätigtPOST /evaluate gibt erwartetes Ergebnis zurück
Audit-Protokolleintrag erstelltGET /audit/logs zeigt den Evaluierungsdatensatz

Verwandte Seiten

Veröffentlicht unter der MIT-Lizenz.