Skip to content

Conversation

austinvalle
Copy link
Member

Related Issue

N/A

Description

This PR implements the lifecycle action type and linked resources, which can be used by both lifecycle actions and linked actions (not yet implemented). I also wrote out most of the package docs that had TODOs on them, and left a new TODO to implement validation on the new lifecycle action type (this PR was getting too long 😆).

Any thoughts on the error messaging, documentation, etc. would be appreciated!

Rollback Plan

  • If a change needs to be reverted, we will roll out an update to the code within 7 days.

Changes to Security Controls

No

commit 8dd8241
Merge: e4bcbbf d4a5416
Author: Austin Valle <austinvalle@gmail.com>
Date:   Thu Jul 17 13:01:08 2025 -0400

    Merge branch 'main' into av/action-validation-rpc

commit e4bcbbf
Author: Austin Valle <austinvalle@gmail.com>
Date:   Thu Jul 17 11:03:05 2025 -0400

    proto5 and proto6 impl

commit 6d3cff2
Author: Austin Valle <austinvalle@gmail.com>
Date:   Thu Jul 17 10:54:54 2025 -0400

    fwserver

commit 3789aad
Author: Austin Valle <austinvalle@gmail.com>
Date:   Thu Jul 17 10:51:57 2025 -0400

    add validators to schemas

commit 8361ea6
Author: Austin Valle <austinvalle@gmail.com>
Date:   Thu Jul 17 10:14:06 2025 -0400

    test provider

commit 2f341cb
Author: Austin Valle <austinvalle@gmail.com>
Date:   Thu Jul 17 10:02:09 2025 -0400

    external interface

commit 43f5717
Author: Austin Valle <austinvalle@gmail.com>
Date:   Thu Jul 17 10:00:53 2025 -0400

    go mod

commit 68a38e4
Merge: 1503be5 3f40cbd
Author: Austin Valle <austinvalle@gmail.com>
Date:   Wed Jul 16 14:51:50 2025 -0400

    Merge branch 'main' into av/all-schemas-types

commit 1503be5
Author: Austin Valle <austinvalle@gmail.com>
Date:   Wed Jul 16 10:07:09 2025 -0400

    update all commented out custom type tests

commit 21ffee7
Author: Austin Valle <austinvalle@gmail.com>
Date:   Tue Jul 15 14:50:56 2025 -0400

    add blocks and docs

commit ea2deb8
Author: Austin Valle <austinvalle@gmail.com>
Date:   Tue Jul 15 14:20:28 2025 -0400

    all attributes (primitive, collection, nested)

commit 98f7232
Author: Austin Valle <austinvalle@gmail.com>
Date:   Tue Jul 15 12:21:19 2025 -0400

    comments

commit 119f4c5
Author: Austin Valle <austinvalle@gmail.com>
Date:   Tue Jul 15 12:20:16 2025 -0400

    mention progress events

commit 47f9631
Author: Austin Valle <austinvalle@gmail.com>
Date:   Tue Jul 15 12:17:41 2025 -0400

    implementation of sending progress events

commit 8fdf71d
Merge: 261ef7d 377d9e3
Author: Austin Valle <austinvalle@gmail.com>
Date:   Tue Jul 15 10:55:48 2025 -0400

    Merge branch 'main' into av/unlinked-action-impl

commit 261ef7d
Author: Austin Valle <austinvalle@gmail.com>
Date:   Mon Jul 14 10:46:50 2025 -0400

    fix map access in unit tests

commit 2f08b28
Author: Austin Valle <austinvalle@gmail.com>
Date:   Mon Jul 14 10:46:44 2025 -0400

    add invoke impl with just completed event

commit e43f576
Author: Austin Valle <austinvalle@gmail.com>
Date:   Mon Jul 14 08:10:58 2025 -0400

    from invoke

commit 7ec37c2
Author: Austin Valle <austinvalle@gmail.com>
Date:   Mon Jul 14 08:04:32 2025 -0400

    from/to plan tests

commit 5d5960a
Author: Austin Valle <austinvalle@gmail.com>
Date:   Mon Jul 14 07:24:30 2025 -0400

    proto server tests

commit 95e7673
Author: Austin Valle <austinvalle@gmail.com>
Date:   Mon Jul 14 07:12:12 2025 -0400

    plan action impl and fwserver tests

commit 7e5fd9f
Author: Austin Valle <austinvalle@gmail.com>
Date:   Fri Jul 11 16:04:11 2025 -0400

    external interfaces for plan / configure

commit 3a1048c
Author: Austin Valle <austinvalle@gmail.com>
Date:   Fri Jul 11 09:36:44 2025 -0400

    fix double import

commit dcd6748
Merge: 32b2083 4bb3f89
Author: Austin Valle <austinvalle@gmail.com>
Date:   Fri Jul 11 08:58:38 2025 -0400

    Merge branch 'main' into av/action-schema

commit 32b2083
Author: Austin Valle <austinvalle@gmail.com>
Date:   Thu Jul 10 16:55:49 2025 -0400

    the rest of the tests

commit 0e5df9c
Author: Austin Valle <austinvalle@gmail.com>
Date:   Thu Jul 10 16:37:34 2025 -0400

    implement unlinked schemas, some attributes, and the rpcs

commit 61eadc9
Author: Austin Valle <austinvalle@gmail.com>
Date:   Thu Jul 10 10:40:30 2025 -0400

    add initial schema attributes and unlinked schema

commit 3c21a45
Author: Austin Valle <austinvalle@gmail.com>
Date:   Wed Jul 9 18:07:03 2025 -0400

    protov6 copy

commit bf10880
Author: Austin Valle <austinvalle@gmail.com>
Date:   Wed Jul 9 18:02:09 2025 -0400

    protov5 and fwserver impl

commit 5eeac4c
Author: Austin Valle <austinvalle@gmail.com>
Date:   Wed Jul 9 13:54:34 2025 -0400

    generate RPC methods

commit 9ec6758
Author: Austin Valle <austinvalle@gmail.com>
Date:   Wed Jul 9 13:54:22 2025 -0400

    go mod
@austinvalle austinvalle requested a review from a team as a code owner August 6, 2025 19:57
@austinvalle austinvalle added the actions Tracking PRs and issues related to the TF actions work label Aug 6, 2025
}

for i, newLinkedResource := range modifyPlanResp.LinkedResources {
resp.LinkedResources[i].PlannedState = planToState(newLinkedResource.Plan)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This applies to InvokeAction as well, but I'm thinking we might want to consider also:

  • Running write-only nullification? (probably both)
  • Checking mutability of identities and if they change?
  • Running semantic equality logic (probably just in Invoke actually)

}

// InvokeRequestLinkedResource represents linked resource data before the action is invoked.
type InvokeRequestLinkedResource struct {
Copy link
Member Author

@austinvalle austinvalle Aug 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only thing not represented in this request that is normally in the plan for resources, is private state.... Should that be in the protocol? Can an action also return new private state? 🤔 (same thought for InvokeAction)

@austinvalle
Copy link
Member Author

I've moved this PR to draft for now as we wait for some design confirmations and moved some of the mergable changes over to #1200

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
actions Tracking PRs and issues related to the TF actions work
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant