Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
4e11030
typescript SDK, node and ts upgrades
vandervillain Jun 30, 2026
189f9a5
close start options gap
vandervillain Jun 30, 2026
5505378
close RPC, prefix field, and channel-size query gaps
vandervillain Jun 30, 2026
5516c0f
rvp path bug fix, document known gaps
vandervillain Jun 30, 2026
299817b
1,2, and 3 done (failure recovery state, useMemoForDataAttributes, RC…
vandervillain Jun 30, 2026
51aca50
no-wait try-get result calls
vandervillain Jun 30, 2026
cf9785c
workflowAlreadyStartedOptions + skipUpdateReapply
vandervillain Jun 30, 2026
b664e8f
Validation/guardrails
vandervillain Jun 30, 2026
d82490d
int64 precision + datetime docs
vandervillain Jun 30, 2026
718258a
publish-and-wait guard
vandervillain Jun 30, 2026
ce88c04
update md current state
vandervillain Jun 30, 2026
bd9e503
close additional java/ts gaps
vandervillain Jun 30, 2026
79d0ccf
close config/default gaps and resolve two minor bugs
vandervillain Jun 30, 2026
02a3d2f
update feature md
vandervillain Jun 30, 2026
508ed24
npm audit resolutions
vandervillain Jun 30, 2026
32a158d
set entry point
vandervillain Jul 7, 2026
a1ced56
default https for idl submodule
vandervillain Jul 10, 2026
733cbe7
propagate idl enums to top level export
vandervillain Jul 15, 2026
9cc0a32
AUTOPLAT-1868: adding type
Jul 17, 2026
76a339d
Merge pull request #14 from indeedeng/jira/katiea/AUTOPLAT-1868
vandervillain Jul 20, 2026
39ea7c2
add integration tests github action
vandervillain Jul 20, 2026
9b6c6c0
need npmrc
vandervillain Jul 20, 2026
91a51f1
resolve wait for iwf-server
vandervillain Jul 20, 2026
1e94328
bump elastisearch to fix integration tests
vandervillain Jul 20, 2026
bc5f9d7
run on main or PR commits
vandervillain Jul 20, 2026
cf53664
Merge pull request #15 from indeedeng/integration-test-action
vandervillain Jul 27, 2026
d12f85d
AUTOPLAT-1934: include prefix-declared data attributes in getAllWorkf…
vandervillain Jul 28, 2026
612488c
Merge pull request #16 from indeedeng/resolve-data-attributes-gap
vandervillain Jul 28, 2026
a5a93b1
resolve wait for state gap
vandervillain Jul 28, 2026
3ba1e9d
Merge pull request #17 from indeedeng/resolve-wait-for-state-completi…
vandervillain Jul 28, 2026
8a6c6c8
AUTOPLAT-1937: add method to get all internal channel command results…
dillia23 Jul 24, 2026
1a910a6
default waitForStateExecutionCompletion stateExecutionNumber to 1
vandervillain Jul 29, 2026
bdf9c68
Merge pull request #20 from indeedeng/wait-for-state-default
vandervillain Jul 29, 2026
fe1a693
add integration test harness and port BasicWorkflow
vandervillain Jul 28, 2026
e85687e
6 more integration tests
vandervillain Jul 28, 2026
d14b3e5
uncommit test post-sdk fix
vandervillain Jul 28, 2026
2407efe
port RpcTest integration tests
vandervillain Jul 28, 2026
0f679d3
port RpcWithMemoTest and PersistenceTest integration tests
vandervillain Jul 28, 2026
f2ff295
port WorkflowUncompletedTest integration tests
vandervillain Jul 28, 2026
27bc143
port ResetTest integration tests
vandervillain Jul 29, 2026
61ec574
port NoStartStateTest, InternalChannelTest, ConditionalCompleteTest a…
vandervillain Jul 29, 2026
834d026
port SignalTest, TimerTest, SkipWaitUntilTest, StateOptionsTest, Stat…
vandervillain Jul 29, 2026
7427ec7
Merge pull request #19 from dillia23/achilling/AUTOPLAT-1865
vandervillain Jul 29, 2026
beb5975
Merge pull request #18 from indeedeng/port-all-integration-tests
vandervillain Jul 29, 2026
67da978
prepare script to temporarily unblock ci
vandervillain Jul 30, 2026
8376444
Merge pull request #21 from indeedeng/temp-unblock-consumers-ci
vandervillain Jul 30, 2026
12de649
Make Failure Recovery settings consistent with Java SDK
Aug 3, 2026
52a330b
Set executeApiFailurePolicy only if executeApiFailureProceedStateId i…
Aug 3, 2026
9e321df
Documentation updates and test fix
Aug 4, 2026
3f486a9
Merge pull request #22 from the-last-syd/failure-recovery-parity
vandervillain Aug 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.{ts,js,json,yml,yaml}]
indent_style = space
indent_size = 4
max_line_length = 120

[*.md]
trim_trailing_whitespace = false
71 changes: 71 additions & 0 deletions .github/workflows/ci-integ-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Integration Test
on:
# Run on any pull request activity — opened, reopened, and every push to the
# PR branch (synchronize) — so it gates PRs before merge, targeting any branch.
pull_request:
# Also run on any commit/merge that lands on main.
push:
branches:
- main

jobs:
tests:
name: "Integration testing"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: "Set up iWF environment"
run: docker compose -f scripts/integ/docker-compose.yml up -d

- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Wait for iwf-server
run: |
echo "Waiting for iwf-server on :8801 ..."
# The API is POST-only, so probe for reachability: curl exits non-zero on
# connection-refused and zero once the server answers with any HTTP response.
# -m/-connect-timeout keep a hung socket from stalling the loop.
attempts=90
for i in $(seq 1 "$attempts"); do
if curl -s -o /dev/null --connect-timeout 3 --max-time 5 http://localhost:8801; then
echo "iwf-server is up (after $((i * 3))s)"
break
fi
if [ "$i" -eq "$attempts" ]; then
echo "::error::iwf-server did not become ready in time" >&2
echo "===== docker ps -a ====="
docker ps -a
echo "===== iwf-server logs ====="
docker logs iwf-server 2>&1 | tail -100 || true
echo "===== temporal logs ====="
docker logs temporal-iwf 2>&1 | tail -60 || true
echo "===== elasticsearch logs ====="
docker logs temporal-elasticsearch-iwf 2>&1 | tail -40 || true
exit 1
fi
# Periodic heartbeat so the log shows progress and container state.
if [ $((i % 10)) -eq 0 ]; then
echo " ...still waiting (${i}/${attempts}); container states:"
docker ps --format ' {{.Names}}: {{.Status}}'
fi
sleep 3
done
# Give temporal-admin-tools time to register the iWF system search attributes.
sleep 20

- name: Run integration tests
run: npm run test:integ

- name: Dump docker logs
if: always()
uses: jwalton/gh-docker-logs@v2
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
/node_modules
/dist
/coverage
/iwf/dist
/iwf/node_modules
/test/dist
/test/node_modules

# ai settings
.claude
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "iwf-idl"]
path = iwf-idl
url = git@github.com:indeedeng/iwf-idl.git
url = https://github.com/indeedeng/iwf-idl.git
4 changes: 4 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Public repo: always resolve from the public npm registry so CI (GitHub-hosted
# runners) and external contributors can install without Indeed credentials.
# This also keeps package-lock.json from being repointed at a private mirror.
registry=https://registry.npmjs.org/
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
lts/krypton
13 changes: 13 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
node_modules
dist
coverage
iwf/dist
iwf/node_modules
test/dist
test/node_modules

# Generated from iwf-idl by `npm run code-gen` — never hand-format.
gen
iwf-idl

package-lock.json
7 changes: 7 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"tabWidth": 4,
"printWidth": 120,
"semi": true,
"singleQuote": false,
"trailingComma": "all"
}
Loading
Loading