@harperfast/template-vue-ts-studio 1.13.0 → 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -595,8 +595,12 @@ rules:
595
595
  # Infrastructure & Ops (priority 4 — MEDIUM)
596
596
  # ===========================================================================
597
597
 
598
+ # Deploying is split across two rules: as one, its sources would come to
599
+ # ~57KB, well over any other rule's input, and the larger the input, the more
600
+ # facts regeneration compresses away. This rule covers a CLI deploy and what
601
+ # happens to a release afterwards; deploying-from-ci covers OIDC in CI.
598
602
  - rule: deploying-to-harper-fabric
599
- description: How to deploy a Harper application to the Harper Fabric cloud.
603
+ description: How to deploy a Harper application to Harper Fabric with the CLI, check that the release was certified, and roll back by activating a previous release's `deployment_id`.
600
604
  category: ops
601
605
  priority: 4
602
606
  order: 1
@@ -608,6 +612,41 @@ rules:
608
612
  - path: fabric/cluster-creation-management.md
609
613
  section: 'Connecting the Harper CLI to a Cluster'
610
614
  role: supplemental
615
+ # The CLI forms of `restart=rolling`, `replicated=false`, `activate=false`
616
+ # and `deployment_id=`. Matched by heading text, so the
617
+ # `restart=rolling` anchor also fails if commands.md ever gains an
618
+ # earlier `Parameters` heading.
619
+ - path: reference/v5/cli/commands.md
620
+ section: 'Parameters'
621
+ role: supplemental
622
+ # How `list_deployments` and `get_job` are run from the CLI.
623
+ - path: reference/v5/cli/operations-api-commands.md
624
+ section: 'General Syntax'
625
+ role: supplemental
626
+ # `deploy_component` is sourced by subsection: the whole section is
627
+ # ~30KB, mostly detail that does not change what an agent does.
628
+ # `Restarting` is left out: Parameters and the canary section carry
629
+ # what an agent needs from it.
630
+ - path: reference/v5/operations-api/operations.md
631
+ section: 'Certifying a release in a canary worker'
632
+ role: primary
633
+ - path: reference/v5/operations-api/operations.md
634
+ section: 'Staging a build and activating it later'
635
+ role: primary
636
+ - path: reference/v5/operations-api/operations.md
637
+ section: 'Going back to a previous release'
638
+ role: primary
639
+ # What a retried activation does on each node, and that a retry with
640
+ # `restart` restarts every worker even where the release is live.
641
+ - path: reference/v5/operations-api/operations.md
642
+ section: 'Retrying an activation'
643
+ role: supplemental
644
+ - path: reference/v5/operations-api/operations.md
645
+ section: '`list_deployments`'
646
+ role: supplemental
647
+ - path: reference/v5/operations-api/operations.md
648
+ section: '`get_job`'
649
+ role: supplemental
611
650
  must_cover:
612
651
  - 'harper deploy'
613
652
  - 'harper login'
@@ -619,6 +658,10 @@ rules:
619
658
  # enc:v1: (1×) → the client-side-encryption envelope
620
659
  # They double as the rename detector for that subheading: if it is
621
660
  # retitled or removed, the content goes and these anchors fail.
661
+ #
662
+ # Deploying by reference is no longer the CI default, but a private
663
+ # repository is still deployed that way. If the docs move this guidance
664
+ # out of `## Remote Management`, re-point the source; don't drop these.
622
665
  - 'fine-grained'
623
666
  - 'Contents: Read-only'
624
667
  - 'read:org'
@@ -633,35 +676,168 @@ rules:
633
676
  # provisions for. The source escapes it as `super\_user`; every generated
634
677
  # body so far unescapes, so the anchor is the unescaped form.
635
678
  - 'super_user'
679
+ # Going back: activating a kept release rebuilds nothing, where
680
+ # redeploying an older commit installs it again from source.
681
+ # `stagingRetention` holds how many releases a node keeps.
682
+ - 'deployment_id'
683
+ - 'list_deployments'
684
+ - 'stagingRetention'
685
+ - 'activate: false'
686
+ # On Pro and Fabric a deploy replicates unless `replicated=false`.
687
+ - 'replicated=false'
688
+ # `not-requested` occurs only in the `certification` table, so it holds
689
+ # the table, not a passing mention of the field. `restartJobId`, `get_job`
690
+ # and `COMPLETE` hold the wait: a rolling deploy responds once its job
691
+ # starts, and its record says `success` even if the job then fails.
692
+ - 'restart=rolling'
693
+ - 'certification'
694
+ - 'not-requested'
695
+ - 'fails closed'
696
+ - 'restartJobId'
697
+ - 'get_job'
698
+ - 'COMPLETE'
636
699
  cross_links:
637
700
  - creating-a-fabric-account-and-cluster
701
+ - deploying-from-ci
702
+
703
+ - rule: deploying-from-ci
704
+ description: How to deploy a Harper application from GitHub Actions with OIDC trusted publishing, so CI stores no Harper credential, including the one-command setup with `harper deploy setup=true provider=github-actions`.
705
+ category: ops
706
+ priority: 4
707
+ order: 2
708
+ mode: generate
709
+ # The guide's isolated-worker and per-PR preview sections are left out:
710
+ # ~18KB on their own, and a different task from deploying a release.
711
+ sources:
712
+ # The one-command setup (v5.4.0) for a workflow that deploys when changes
713
+ # merge to a branch, which create-harper projects scaffold. The guide's
714
+ # hand-written policy is still what a tag-triggered release needs.
715
+ - path: reference/v5/cli/commands.md
716
+ section: 'GitHub Actions deploys (OIDC)'
717
+ role: primary
718
+ - path: learn/developers/deploying-from-ci.md
719
+ section: 'Let the workflow authenticate with OIDC'
720
+ role: primary
721
+ - path: learn/developers/deploying-from-ci.md
722
+ section: 'Path A: deploy a tagged release from your repository'
723
+ role: primary
724
+ - path: learn/developers/deploying-from-ci.md
725
+ section: 'Give Harper a durable credential for a private source'
726
+ role: supplemental
727
+ - path: learn/developers/deploying-from-ci.md
728
+ section: 'Path B: build in CI, publish to GitHub Packages, deploy the artifact'
729
+ role: supplemental
730
+ - path: learn/developers/deploying-from-ci.md
731
+ section: 'Check the deployment record'
732
+ role: supplemental
733
+ - path: learn/developers/deploying-from-ci.md
734
+ section: 'Operational notes'
735
+ role: supplemental
736
+ # Where the exchange sits in credential precedence, and how to diagnose
737
+ # a refused one.
738
+ - path: reference/v5/cli/authentication.md
739
+ section: 'Workload identity (OIDC)'
740
+ role: supplemental
741
+ - path: reference/v5/operations-api/operations.md
742
+ section: 'Policy specificity for GitHub Actions'
743
+ role: supplemental
744
+ - path: reference/v5/operations-api/operations.md
745
+ section: '`list_oidc_trust`'
746
+ role: supplemental
747
+ - path: reference/v5/operations-api/operations.md
748
+ section: '`drop_oidc_trust`'
749
+ role: supplemental
750
+ must_cover:
751
+ # The one-command setup: `workflow=` holds the default-file rule (a
752
+ # `deploy.yml` workflow can't match a policy pinned to `deploy.yaml`),
753
+ # and `github-actions-<project>` the policy name a revocation drops.
754
+ - 'provider=github-actions'
755
+ - 'workflow='
756
+ - 'github-actions-<project>'
757
+ # The version check `harper deploy` makes before it uploads; a role
758
+ # without it logs a refused operation on every run.
759
+ - 'registration_info'
760
+ - 'id-token: write'
761
+ - 'vars.HARPER_CLI_TARGET'
762
+ # A configured credential outranks the exchange, so a pipeline that
763
+ # keeps its refresh token never uses OIDC.
764
+ - 'HARPER_CLI_REFRESH_TOKEN'
765
+ # The workflow as written: without a checkout and the CLI, a clean
766
+ # runner has nothing to deploy and nothing to deploy it with. Fact
767
+ # retention can't see inside a fence, and step 2's single job also has
768
+ # `runs-on: ubuntu-latest` and `actions/checkout`, so Path A's complete
769
+ # workflow is held by what only it has: its trigger (`push:` and
770
+ # `tags: ['v*']`), its `jobs:` wrapper, and the wait loop's
771
+ # `.[0].status`. The CLI install is held with its pin: an unpinned one
772
+ # would change under a rerun of an old tag after a new major release.
773
+ - 'actions/checkout'
774
+ - 'npm install --global harper@^5.3'
775
+ - 'runs-on: ubuntu-latest'
776
+ - 'push:'
777
+ - "tags: ['v*']"
778
+ - 'jobs:'
779
+ - '.[0].status'
780
+ # `workflow_path` is what a tag-triggered release pins instead of
781
+ # `workflow_ref`. `trailing slash` holds the audience rule, without which
782
+ # a policy never matches. The environment is the ref gate, and only as
783
+ # strong as its deployment branch and tag rules.
784
+ - 'add_oidc_trust'
785
+ - 'super_user'
786
+ - 'token.actions.githubusercontent.com'
787
+ - 'repository_id'
788
+ - 'workflow_ref'
789
+ - 'workflow_path'
790
+ - 'environment: production'
791
+ - 'Deployment branches and tags'
792
+ - 'trailing slash'
793
+ # An `operations` allowlist refuses what it doesn't list, so the wait
794
+ # step needs `get_job`. A job lives only on the node that received the
795
+ # deploy, so polls through a load-balanced URL have to reach it.
796
+ - 'deploy_component'
797
+ - 'get_job'
798
+ - 'get_deployment'
799
+ - 'restartJobId'
800
+ - 'load-balanced'
801
+ - 'credential=true'
802
+ # A rejected exchange never says which check failed; `invalid_reason`
803
+ # and the `oidc-trust` log do. Dropping a policy leaves an issued token
804
+ # valid for its hour; `alter_user` stops it.
805
+ - 'list_oidc_trust'
806
+ - 'invalid_reason'
807
+ - 'oidc-trust'
808
+ - 'drop_oidc_trust'
809
+ - 'alter_user'
810
+ # The user setup creates, which an incident revocation deactivates.
811
+ - '<project>-ci-deploy'
812
+ cross_links:
813
+ - deploying-to-harper-fabric
638
814
 
639
815
  - rule: creating-a-fabric-account-and-cluster
640
816
  description: How to create a Harper Fabric account, organization, and cluster.
641
817
  category: ops
642
818
  priority: 4
643
- order: 2
819
+ order: 3
644
820
  mode: synthesized
645
821
 
646
822
  - rule: creating-harper-apps
647
823
  description: How to initialize a new Harper application using the CLI.
648
824
  category: ops
649
825
  priority: 4
650
- order: 3
826
+ order: 4
651
827
  mode: synthesized
652
828
 
653
829
  - rule: serving-web-content
654
830
  description: How to serve static files and integrated Vite/React applications in Harper.
655
831
  category: ops
656
832
  priority: 4
657
- order: 4
833
+ order: 5
658
834
  mode: synthesized
659
835
 
660
836
  - rule: logging
661
837
  description: Best practices for logging in Harper, including console capture, the granular logger interface, and programmatic log retrieval.
662
838
  category: ops
663
839
  priority: 4
664
- order: 5
840
+ order: 6
665
841
  mode: generate
666
842
  sources:
667
843
  - path: reference/v5/logging/overview.md
@@ -677,7 +853,7 @@ rules:
677
853
  description: How to load environment variables from .env files into a Harper application using the loadEnv plugin.
678
854
  category: ops
679
855
  priority: 4
680
- order: 6
856
+ order: 7
681
857
  mode: generate
682
858
  sources:
683
859
  - path: reference/v5/environment-variables/overview.md
@@ -693,7 +869,7 @@ rules:
693
869
  description: Breaking changes and recommended updates when migrating a Harper application to v5.
694
870
  category: ops
695
871
  priority: 4
696
- order: 7
872
+ order: 8
697
873
  mode: generate
698
874
  sources:
699
875
  - path: release-notes/v5-lincoln/v5-migration.md
@@ -723,7 +899,7 @@ rules:
723
899
  description: How to delegate tasks to Harper's built-in agent via the CLI and the agent operations API.
724
900
  category: ops
725
901
  priority: 4
726
- order: 8
902
+ order: 9
727
903
  mode: synthesized
728
904
  cross_links:
729
905
  - deploying-to-harper-fabric