Skip to content

Add Option to Consume Depth Only on @model Joins, Allow Infinite Non-@model Nesting #943

@jgroom33

Description

@jgroom33

Describe the feature you'd like to request

Problem
The current amplify-codegen depth logic (--maxDepth) increments depth for every nesting level, including into non-@model types (embedded objects/lists within a table). This limits traversal into a single table’s embedded structures, treating them as equivalent to joins, when only @model relationships (table-to-table joins) should consume depth.

Describe the solution you'd like

Add an option to redefine depth so:

  1. Depth Consumes Only on @model Joins: Nesting into non-@model types doesn’t increment depth.
  2. Infinite Non-@model Depth: Fully expand embedded types without depth limits, respecting cycles.

Benefits

  1. Logical Complexity: Depth reflects table joins (e.g., Todo to User @model), not embedded structure within a table, matching Amplify’s single-table design model.
  2. Full Embedded Exposure: Infinite depth for non-@model types allows complete traversal of a table’s embedded data.

Proposed Implementation
New Config Option: depthByModelOnly: true (default false)—Depth increments only for @model joins, preserving current behavior unless opted in.

Describe alternatives you've considered

None

Additional context

No response

Is this something that you'd be interested in working on?

  • 👋 I may be able to implement this feature request

Would this feature include a breaking change?

  • ⚠️ This feature might incur a breaking change

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions