HarperFast / HarperFast/harper

Describe response returns indexed: {} instead of indexed: true (regression since 4.6.0-alpha)

Open
#604 0 comments 0 reactions 0 assignees View on GitHub
area:rest-api bug from-jira
Dominant language
JavaScript
Stars
89
Forks
10
Avg merge
2d 6h
Merged PRs (30d)
200

Description

The `GET /TableName` table-describe response previously returned `indexed: true` for indexed attributes. As of 4.6.0-alpha it returns `indexed: {}` instead, which broke consumers that check `indexed === true`.

## Reproduction

Schema:
```graphql
type TableName @table @export {
id: ID @primaryKey
name: String
tag: String @indexed
}
```

`GET http://localhost:9926/TableName` returns:
```json
{
"attributes": [
{
"type": "String",
"name": "tag",
"indexed": {}, // ← regression
"attribute": "tag",
"indexNulls": true
}
]
}
```

Expected (and the behavior in 4.5.9):
```json
{ "indexed": true }
```

## Where it changed

Per the Jira description: behavior changed between 4.6.0-alpha.1 and 4.6.0-alpha.2 (alpha.1 couldn't install for the reporter).

## Likely cause

The describe path serializes the underlying index config object. In 4.5 the value was a boolean; in 4.6 it became an object (likely so future per-index options like `unique`, `nulls`, sort order could fit). When that internal change happened, the describe response wasn't given a backward-compat formatter — so the empty object leaks through.

## Acceptance criteria

- Describe response returns `indexed: true` for the default case (or `indexed: { ...options }` only when non-default index options apply).
- Consumers checking `indexed === true` work again.
- If the long-term answer is "always object", agree on the shape and document it as a breaking-change in the release notes.

---

Tracked in Jira: [CORE-2955](https://harperdb.atlassian.net/browse/CORE-2955)

🤖 Filed by Claude on behalf of Kris.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.