[FEATURE] Add missing API specs

Is your feature request related to a problem?
The spec repo should be 100% of specs that ship with OpenSearch and kept up-to-date.
What solution would you like?

Specs up-to-date to the latest distribution of OpenSearch.
A way to know which specs aren't up-to-date (a tool)?

Do you have any additional context?
This is what's missing per https://github.com/dblock/opensearch-api-specification/actions/runs/7495103121/job/20404497220#step:10:1, generated via https://github.com/opensearch-project/opensearch-api-specification/pull/179.

[ ] /_alias: ["PUT"]
[ ] /_alias/{name}: ["PUT","POST"]
[ ] /_aliases: ["GET"]
[ ] /_aliases/{name}: ["PUT","POST"]
[ ] /_close: ["POST"]
[ ] /_cluster/decommission/awareness: ["DELETE"]
[ ] /_cluster/routing/awareness/{attribute}/weights: ["DELETE"]
[ ] /_cluster/voting_config_exclusions/{node_name}: ["POST"]
[ ] /_flush/synced: ["GET","POST"]
[ ] /_mappings: ["GET"]
[ ] /_nodes/{nodeId}/info/{metrics}: ["GET"]
[ ] /_open: ["POST"]
[ ] /_opendistro/_alerting/destinations: ["GET"]
[ ] /_opendistro/_alerting/destinations/email_accounts/_search: ["GET","POST"]
[ ] /_opendistro/_alerting/destinations/email_accounts/{emailAccountID}: ["GET","HEAD"]
[ ] /_opendistro/_alerting/destinations/email_groups/_search: ["GET","POST"]
[ ] /_opendistro/_alerting/destinations/email_groups/{emailGroupID}: ["GET","HEAD"]
[ ] /_opendistro/_alerting/destinations/{destinationID}: ["GET"]
[ ] /_opendistro/_alerting/monitors: ["POST"]
[ ] /_opendistro/_alerting/monitors/_execute: ["POST"]
[ ] /_opendistro/_alerting/monitors/_search: ["GET","POST"]
[ ] /_opendistro/_alerting/monitors/alerts: ["GET"]
[ ] /_opendistro/_alerting/monitors/{monitorID}: ["GET","PUT","DELETE","HEAD"]
[ ] /_opendistro/_alerting/monitors/{monitorID}/_acknowledge/alerts: ["POST"]
[ ] /_opendistro/_alerting/monitors/{monitorID}/_execute: ["POST"]
[ ] /_opendistro/_alerting/stats/: ["GET"]
[ ] /_opendistro/_alerting/stats/{metric}: ["GET"]
[ ] /_opendistro/_alerting/{nodeId}/stats/: ["GET"]
[ ] /_opendistro/_alerting/{nodeId}/stats/{metric}: ["GET"]
[ ] /_opendistro/_anomaly_detection/detectors: ["POST"]
[ ] /_opendistro/_anomaly_detection/detectors/_search: ["GET","POST"]
[ ] /_opendistro/_anomaly_detection/detectors/count: ["GET"]
[ ] /_opendistro/_anomaly_detection/detectors/match: ["GET"]
[ ] /_opendistro/_anomaly_detection/detectors/results/_search: ["GET","POST"]
[ ] /_opendistro/_anomaly_detection/detectors/tasks/_search: ["GET","POST"]
[ ] /_opendistro/_anomaly_detection/detectors/{detectorID}: ["GET","PUT","DELETE","HEAD"]
[ ] /_opendistro/_anomaly_detection/detectors/{detectorID}/_preview: ["POST"]
[ ] /_opendistro/_anomaly_detection/detectors/{detectorID}/_profile: ["GET"]
[ ] /_opendistro/_anomaly_detection/detectors/{detectorID}/_profile/{type}: ["GET"]
[ ] /_opendistro/_anomaly_detection/detectors/{detectorID}/_run: ["POST"]
[ ] /_opendistro/_anomaly_detection/detectors/{detectorID}/_start: ["POST"]
[ ] /_opendistro/_anomaly_detection/detectors/{detectorID}/_stop: ["POST"]
[ ] /_opendistro/_anomaly_detection/stats/: ["GET"]
[ ] /_opendistro/_anomaly_detection/stats/{stat}: ["GET"]
[ ] /_opendistro/_anomaly_detection/{nodeId}/stats/: ["GET"]
[ ] /_opendistro/_anomaly_detection/{nodeId}/stats/{stat}: ["GET"]
[ ] /_opendistro/_asynchronous_search: ["POST"]
[ ] /_opendistro/_asynchronous_search/_nodes/{nodeId}/stats: ["GET"]
[ ] /_opendistro/_asynchronous_search/stats: ["GET"]
[ ] /_opendistro/_asynchronous_search/{id}: ["GET","DELETE"]
[ ] /_opendistro/_ism/add: ["POST"]
[ ] /_opendistro/_ism/add/{index}: ["POST"]
[ ] /_opendistro/_ism/change_policy: ["POST"]
[ ] /_opendistro/_ism/change_policy/{index}: ["POST"]
[ ] /_opendistro/_ism/explain: ["GET"]
[ ] /_opendistro/_ism/explain/{index}: ["GET"]
[ ] /_opendistro/_ism/policies: ["GET","PUT"]
[ ] /_opendistro/_ism/policies/{policyID}: ["GET","PUT","DELETE","HEAD"]
[ ] /_opendistro/_ism/remove: ["POST"]
[ ] /_opendistro/_ism/remove/{index}: ["POST"]
[ ] /_opendistro/_ism/retry: ["POST"]
[ ] /_opendistro/_ism/retry/{index}: ["POST"]
[ ] /_opendistro/_knn/stats/: ["GET"]
[ ] /_opendistro/_knn/stats/{stat}: ["GET"]
[ ] /_opendistro/_knn/warmup/{index}: ["GET"]
[ ] /_opendistro/_knn/{nodeId}/stats/: ["GET"]
[ ] /_opendistro/_knn/{nodeId}/stats/{stat}: ["GET"]
[ ] /_opendistro/_performanceanalyzer/_agent/{redirectEndpoint}: ["GET"]
[ ] /_opendistro/_performanceanalyzer/batch/cluster/config: ["GET","POST"]
[ ] /_opendistro/_performanceanalyzer/batch/config: ["GET","POST"]
[ ] /_opendistro/_performanceanalyzer/cluster/config: ["GET","POST"]
[ ] /_opendistro/_performanceanalyzer/config: ["GET","POST"]
[ ] /_opendistro/_performanceanalyzer/logging/cluster/config: ["GET","POST"]
[ ] /_opendistro/_performanceanalyzer/logging/config: ["GET","POST"]
[ ] /_opendistro/_performanceanalyzer/override/cluster/config: ["GET","POST"]
[ ] /_opendistro/_performanceanalyzer/rca/cluster/config: ["GET","POST"]
[ ] /_opendistro/_performanceanalyzer/rca/config: ["GET","POST"]
[ ] /_opendistro/_ppl: ["POST"]
[ ] /_opendistro/_ppl/_explain: ["POST"]
[ ] /_opendistro/_ppl/stats: ["GET","POST"]
[ ] /_opendistro/_refresh_search_analyzers: ["POST"]
[ ] /_opendistro/_refresh_search_analyzers/{index}: ["POST"]
[ ] /_opendistro/_reports/_local/stats: ["GET"]
[ ] /_opendistro/_reports/definition: ["POST"]
[ ] /_opendistro/_reports/definition/{reportDefinitionId}: ["GET","PUT","DELETE"]
[ ] /_opendistro/_reports/definitions: ["GET"]
[ ] /_opendistro/_reports/instance/{reportInstanceId}: ["GET","POST"]
[ ] /_opendistro/_reports/instances: ["GET"]
[ ] /_opendistro/_reports/on_demand: ["PUT"]
[ ] /_opendistro/_reports/on_demand/{reportDefinitionId}: ["POST"]
[ ] /_opendistro/_rollup/jobs: ["GET","PUT"]
[ ] /_opendistro/_rollup/jobs/{rollupID}: ["GET","PUT","DELETE","HEAD"]
[ ] /_opendistro/_rollup/jobs/{rollupID}/_explain: ["GET"]
[ ] /_opendistro/_rollup/jobs/{rollupID}/_start: ["POST"]
[ ] /_opendistro/_rollup/jobs/{rollupID}/_stop: ["POST"]
[ ] /_opendistro/_security/api/account: ["GET","PUT"]
[ ] /_opendistro/_security/api/actiongroup/: ["GET"]
[ ] /_opendistro/_security/api/actiongroup/{name}: ["GET","PUT","DELETE"]
[ ] /_opendistro/_security/api/actiongroups/: ["GET","PATCH"]
[ ] /_opendistro/_security/api/actiongroups/{name}: ["GET","PUT","DELETE","PATCH"]
[ ] /_opendistro/_security/api/audit/: ["GET","PATCH"]
[ ] /_opendistro/_security/api/audit/config: ["PUT"]
[ ] /_opendistro/_security/api/authtoken: ["POST"]
[ ] /_opendistro/_security/api/cache: ["GET","PUT","POST","DELETE"]
[ ] /_opendistro/_security/api/internalusers/: ["GET","PATCH"]
[ ] /_opendistro/_security/api/internalusers/{name}: ["GET","PUT","DELETE","PATCH"]
[ ] /_opendistro/_security/api/internalusers/{name}/authtoken: ["POST"]
[ ] /_opendistro/_security/api/migrate: ["POST"]
[ ] /_opendistro/_security/api/permissionsinfo: ["GET"]
[ ] /_opendistro/_security/api/roles/: ["GET","PATCH"]
[ ] /_opendistro/_security/api/roles/{name}: ["GET","PUT","DELETE","PATCH"]
[ ] /_opendistro/_security/api/rolesmapping/: ["GET","PATCH"]
[ ] /_opendistro/_security/api/rolesmapping/{name}: ["GET","PUT","DELETE","PATCH"]
[ ] /_opendistro/_security/api/securityconfig: ["GET","PATCH"]
[ ] /_opendistro/_security/api/securityconfig/config: ["PUT"]
[ ] /_opendistro/_security/api/ssl/certs: ["GET"]
[ ] /_opendistro/_security/api/ssl/{certType}/reloadcerts/: ["PUT"]
[ ] /_opendistro/_security/api/tenancy/config: ["GET","PUT"]
[ ] /_opendistro/_security/api/tenants/: ["GET","PATCH"]
[ ] /_opendistro/_security/api/tenants/{name}: ["GET","PUT","DELETE","PATCH"]
[ ] /_opendistro/_security/api/user/: ["GET"]
[ ] /_opendistro/_security/api/user/{name}: ["GET","PUT","DELETE"]
[ ] /_opendistro/_security/api/user/{name}/authtoken: ["POST"]
[ ] /_opendistro/_security/api/validate: ["GET"]
[ ] /_opendistro/_security/api/whitelist: ["GET","PUT","PATCH"]
[ ] /_opendistro/_security/authinfo: ["GET","POST"]
[ ] /_opendistro/_security/health: ["GET","POST"]
[ ] /_opendistro/_security/kibanainfo: ["GET","POST"]
[ ] /_opendistro/_security/sslinfo: ["GET"]
[ ] /_opendistro/_security/tenantinfo: ["GET","POST"]
[ ] /_opendistro/_sql: ["POST"]
[ ] /_opendistro/_sql/_explain: ["POST"]
[ ] /_opendistro/_sql/close: ["POST"]
[ ] /_opendistro/_sql/settings: ["PUT"]
[ ] /_opendistro/_sql/stats: ["GET","POST"]
[ ] /_opensearch_dashboards/_alias: ["GET","PUT"]
[ ] /_opensearch_dashboards/_alias/{name}: ["GET","PUT","POST","HEAD"]
[ ] /_opensearch_dashboards/_aliases: ["GET"]
[ ] /_opensearch_dashboards/_aliases/{name}: ["PUT","POST"]
[ ] /_opensearch_dashboards/_bulk: ["PUT","POST"]
[ ] /_opensearch_dashboards/_mget: ["GET","POST"]
[ ] /_opensearch_dashboards/_refresh: ["GET","POST"]
[ ] /_opensearch_dashboards/_search: ["GET","POST"]
[ ] /_opensearch_dashboards/_search/scroll: ["GET","POST","DELETE"]
[ ] /_opensearch_dashboards/_search/scroll/{scroll_id}: ["GET","POST","DELETE"]
[ ] /_opensearch_dashboards/_settings: ["PUT"]
[ ] /_opensearch_dashboards/{index}: ["GET","PUT","HEAD"]
[ ] /_opensearch_dashboards/{index}/_alias: ["GET","PUT","HEAD"]
[ ] /_opensearch_dashboards/{index}/_alias/{name}: ["GET","PUT","POST","HEAD"]
[ ] /_opensearch_dashboards/{index}/_aliases: ["PUT"]
[ ] /_opensearch_dashboards/{index}/_aliases/{name}: ["PUT","POST"]
[ ] /_opensearch_dashboards/{index}/_bulk: ["PUT","POST"]
[ ] /_opensearch_dashboards/{index}/_create/{id}: ["PUT","POST"]
[ ] /_opensearch_dashboards/{index}/_delete_by_query: ["POST"]
[ ] /_opensearch_dashboards/{index}/_doc: ["POST"]
[ ] /_opensearch_dashboards/{index}/_doc/{id}: ["GET","PUT","POST","DELETE","HEAD"]
[ ] /_opensearch_dashboards/{index}/_mget: ["GET","POST"]
[ ] /_opensearch_dashboards/{index}/_refresh: ["GET","POST"]
[ ] /_opensearch_dashboards/{index}/_search: ["GET","POST"]
[ ] /_opensearch_dashboards/{index}/_settings: ["PUT"]
[ ] /_opensearch_dashboards/{index}/_update/{id}: ["POST"]
[ ] /_plugins/_alerting/destinations: ["GET"]
[ ] /_plugins/_alerting/destinations/email_accounts/_search: ["GET","POST"]
[ ] /_plugins/_alerting/destinations/email_accounts/{emailAccountID}: ["GET","HEAD"]
[ ] /_plugins/_alerting/destinations/email_groups/_search: ["GET","POST"]
[ ] /_plugins/_alerting/destinations/email_groups/{emailGroupID}: ["GET","HEAD"]
[ ] /_plugins/_alerting/destinations/{destinationID}: ["GET"]
[ ] /_plugins/_alerting/findings/_search: ["GET"]
[ ] /_plugins/_alerting/monitors: ["POST"]
[ ] /_plugins/_alerting/monitors/_execute: ["POST"]
[ ] /_plugins/_alerting/monitors/_search: ["GET","POST"]
[ ] /_plugins/_alerting/monitors/alerts: ["GET"]
[ ] /_plugins/_alerting/monitors/{monitorID}: ["GET","PUT","DELETE","HEAD"]
[ ] /_plugins/_alerting/monitors/{monitorID}/_acknowledge/alerts: ["POST"]
[ ] /_plugins/_alerting/monitors/{monitorID}/_execute: ["POST"]
[ ] /_plugins/_alerting/stats/: ["GET"]
[ ] /_plugins/_alerting/stats/{metric}: ["GET"]
[ ] /_plugins/_alerting/workflows: ["POST"]
[ ] /_plugins/_alerting/workflows/alerts: ["GET"]
[ ] /_plugins/_alerting/workflows/{workflowID}: ["GET","PUT","DELETE"]
[ ] /_plugins/_alerting/workflows/{workflowID}/_acknowledge/alerts: ["POST"]
[ ] /_plugins/_alerting/workflows/{workflowID}/_execute: ["POST"]
[ ] /_plugins/_alerting/{nodeId}/stats/: ["GET"]
[ ] /_plugins/_alerting/{nodeId}/stats/{metric}: ["GET"]
[ ] /_plugins/_anomaly_detection/detectors: ["POST"]
[ ] /_plugins/_anomaly_detection/detectors/_preview: ["POST"]
[ ] /_plugins/_anomaly_detection/detectors/_search: ["GET","POST"]
[ ] /_plugins/_anomaly_detection/detectors/_validate: ["POST"]
[ ] /_plugins/_anomaly_detection/detectors/_validate/{type}: ["POST"]
[ ] /_plugins/_anomaly_detection/detectors/count: ["GET"]
[ ] /_plugins/_anomaly_detection/detectors/match: ["GET"]
[ ] /_plugins/_anomaly_detection/detectors/results: ["DELETE"]
[ ] /_plugins/_anomaly_detection/detectors/results/_search: ["GET","POST"]
[ ] /_plugins/_anomaly_detection/detectors/results/_search/{resultIndex}: ["GET","POST"]
[ ] /_plugins/_anomaly_detection/detectors/tasks/_search: ["GET","POST"]
[ ] /_plugins/_anomaly_detection/detectors/{detectorID}: ["GET","PUT","DELETE","HEAD"]
[ ] /_plugins/_anomaly_detection/detectors/{detectorID}/_preview: ["POST"]
[ ] /_plugins/_anomaly_detection/detectors/{detectorID}/_profile: ["GET","POST"]
[ ] /_plugins/_anomaly_detection/detectors/{detectorID}/_profile/{type}: ["GET","POST"]
[ ] /_plugins/_anomaly_detection/detectors/{detectorID}/_run: ["POST"]
[ ] /_plugins/_anomaly_detection/detectors/{detectorID}/_start: ["POST"]
[ ] /_plugins/_anomaly_detection/detectors/{detectorID}/_stop: ["POST"]
[ ] /_plugins/_anomaly_detection/detectors/{detectorID}/results/_topAnomalies: ["GET","POST"]
[ ] /_plugins/_anomaly_detection/stats/: ["GET"]
[ ] /_plugins/_anomaly_detection/stats/{stat}: ["GET"]
[ ] /_plugins/_anomaly_detection/{nodeId}/stats/: ["GET"]
[ ] /_plugins/_anomaly_detection/{nodeId}/stats/{stat}: ["GET"]
[ ] /_plugins/_async_query: ["POST"]
[ ] /_plugins/_async_query/{queryId}: ["GET","DELETE"]
[ ] /_plugins/_asynchronous_search: ["POST"]
[ ] /_plugins/_asynchronous_search/_nodes/{nodeId}/stats: ["GET"]
[ ] /_plugins/_asynchronous_search/stats: ["GET"]
[ ] /_plugins/_asynchronous_search/{id}: ["GET","DELETE"]
[ ] /_plugins/_im/lron: ["GET","POST"]
[ ] /_plugins/_im/lron/{id}: ["GET","PUT","DELETE"]
[ ] /_plugins/_ism/add: ["POST"]
[ ] /_plugins/_ism/add/{index}: ["POST"]
[ ] /_plugins/_ism/change_policy: ["POST"]
[ ] /_plugins/_ism/change_policy/{index}: ["POST"]
[ ] /_plugins/_ism/explain: ["GET"]
[ ] /_plugins/_ism/explain/{index}: ["GET"]
[ ] /_plugins/_ism/policies: ["GET","PUT"]
[ ] /_plugins/_ism/policies/{policyID}: ["GET","PUT","DELETE","HEAD"]
[ ] /_plugins/_ism/remove: ["POST"]
[ ] /_plugins/_ism/remove/{index}: ["POST"]
[ ] /_plugins/_ism/retry: ["POST"]
[ ] /_plugins/_ism/retry/{index}: ["POST"]
[ ] /_plugins/_job_scheduler/_job_details: ["PUT"]
[ ] /_plugins/_job_scheduler/_job_details/{document_id}: ["PUT"]
[ ] /_plugins/_job_scheduler/_lock: ["GET"]
[ ] /_plugins/_job_scheduler/_release_lock/{lock_id}: ["PUT"]
[ ] /_plugins/_knn/models/_search: ["GET","POST"]
[ ] /_plugins/_knn/models/_train: ["POST"]
[ ] /_plugins/_knn/models/{model_id}: ["GET","DELETE"]
[ ] /_plugins/_knn/models/{model_id}/_train: ["POST"]
[ ] /_plugins/_knn/stats/: ["GET"]
[ ] /_plugins/_knn/stats/{stat}: ["GET"]
[ ] /_plugins/_knn/warmup/{index}: ["GET"]
[ ] /_plugins/_knn/{nodeId}/stats/: ["GET"]
[ ] /_plugins/_knn/{nodeId}/stats/{stat}: ["GET"]
[ ] /_plugins/_ml/_execute/{algorithm}: ["POST"]
[ ] /_plugins/_ml/_predict/{algorithm}/{model_id}: ["POST"]
[ ] /_plugins/_ml/_train/{algorithm}: ["POST"]
[ ] /_plugins/_ml/_train_predict/{algorithm}: ["POST"]
[ ] /_plugins/_ml/connectors/_create: ["POST"]
[ ] /_plugins/_ml/connectors/_search: ["GET","POST"]
[ ] /_plugins/_ml/connectors/{connector_id}: ["GET","PUT","DELETE"]
[ ] /_plugins/_ml/memory/conversation: ["GET","POST"]
[ ] /_plugins/_ml/memory/conversation/{conversation_id}: ["GET","POST","DELETE"]
[ ] /_plugins/_ml/model_groups/_register: ["POST"]
[ ] /_plugins/_ml/model_groups/_search: ["GET","POST"]
[ ] /_plugins/_ml/model_groups/{model_group_id}: ["PUT","DELETE"]
[ ] /_plugins/_ml/models/_register: ["POST"]
[ ] /_plugins/_ml/models/_register_meta: ["POST"]
[ ] /_plugins/_ml/models/_search: ["GET","POST"]
[ ] /_plugins/_ml/models/_undeploy: ["POST"]
[ ] /_plugins/_ml/models/_unload: ["POST"]
[ ] /_plugins/_ml/models/_upload: ["POST"]
[ ] /_plugins/_ml/models/meta: ["POST"]
[ ] /_plugins/_ml/models/{model_id}: ["GET","DELETE"]
[ ] /_plugins/_ml/models/{model_id}/_deploy: ["POST"]
[ ] /_plugins/_ml/models/{model_id}/_load: ["POST"]
[ ] /_plugins/_ml/models/{model_id}/_predict: ["POST"]
[ ] /_plugins/_ml/models/{model_id}/_undeploy: ["POST"]
[ ] /_plugins/_ml/models/{model_id}/_unload: ["POST"]
[ ] /_plugins/_ml/models/{model_id}/chunk/{chunk_number}: ["POST"]
[ ] /_plugins/_ml/models/{model_id}/upload_chunk/{chunk_number}: ["POST"]
[ ] /_plugins/_ml/models/{model_id}/{version}/_register: ["POST"]
[ ] /_plugins/_ml/models/{model_id}/{version}/_upload: ["POST"]
[ ] /_plugins/_ml/profile: ["GET"]
[ ] /_plugins/_ml/profile/models: ["GET"]
[ ] /_plugins/_ml/profile/models/{model_id}: ["GET"]
[ ] /_plugins/_ml/profile/tasks: ["GET"]
[ ] /_plugins/_ml/profile/tasks/{task_id}: ["GET"]
[ ] /_plugins/_ml/stats/: ["GET"]
[ ] /_plugins/_ml/stats/{stat}: ["GET"]
[ ] /_plugins/_ml/tasks/_search: ["GET","POST"]
[ ] /_plugins/_ml/tasks/{task_id}: ["GET","DELETE"]
[ ] /_plugins/_ml/{nodeId}/stats/: ["GET"]
[ ] /_plugins/_ml/{nodeId}/stats/{stat}: ["GET"]
[ ] /_plugins/_notifications/channels: ["GET"]
[ ] /_plugins/_notifications/configs: ["GET","POST","DELETE"]
[ ] /_plugins/_notifications/configs/{config_id}: ["GET","PUT","DELETE"]
[ ] /_plugins/_notifications/feature/test/{config_id}: ["GET","POST"]
[ ] /_plugins/_notifications/features: ["GET"]
[ ] /_plugins/_observability/_local/stats: ["GET"]
[ ] /_plugins/_observability/object: ["GET","POST","DELETE"]
[ ] /_plugins/_observability/object/{objectId}: ["GET","PUT","DELETE"]
[ ] /_plugins/_performanceanalyzer/_agent/{redirectEndpoint}: ["GET"]
[ ] /_plugins/_performanceanalyzer/batch/cluster/config: ["GET","POST"]
[ ] /_plugins/_performanceanalyzer/batch/config: ["GET","POST"]
[ ] /_plugins/_performanceanalyzer/cluster/config: ["GET","POST"]
[ ] /_plugins/_performanceanalyzer/config: ["GET","POST"]
[ ] /_plugins/_performanceanalyzer/logging/cluster/config: ["GET","POST"]
[ ] /_plugins/_performanceanalyzer/logging/config: ["GET","POST"]
[ ] /_plugins/_performanceanalyzer/override/cluster/config: ["GET","POST"]
[ ] /_plugins/_performanceanalyzer/rca/cluster/config: ["GET","POST"]
[ ] /_plugins/_performanceanalyzer/rca/config: ["GET","POST"]
[ ] /_plugins/_performanceanalyzer/threadContentionMonitoring/cluster/config: ["GET","POST"]
[ ] /_plugins/_performanceanalyzer/threadContentionMonitoring/config: ["GET","POST"]
[ ] /_plugins/_ppl: ["POST"]
[ ] /_plugins/_ppl/_explain: ["POST"]
[ ] /_plugins/_ppl/stats: ["GET","POST"]
[ ] /_plugins/_query/_datasources: ["GET","PUT","POST"]
[ ] /_plugins/_query/_datasources/{dataSourceName}: ["GET","DELETE"]
[ ] /_plugins/_query/settings: ["PUT"]
[ ] /_plugins/_refresh_search_analyzers: ["POST"]
[ ] /_plugins/_refresh_search_analyzers/{index}: ["POST"]
[ ] /_plugins/_replication/_autofollow: ["POST","DELETE"]
[ ] /_plugins/_replication/autofollow_stats: ["GET"]
[ ] /_plugins/_replication/follower_stats: ["GET"]
[ ] /_plugins/_replication/leader_stats: ["GET"]
[ ] /_plugins/_replication/{index}/_pause: ["POST"]
[ ] /_plugins/_replication/{index}/_resume: ["POST"]
[ ] /_plugins/_replication/{index}/_start: ["PUT"]
[ ] /_plugins/_replication/{index}/_status: ["GET"]
[ ] /_plugins/_replication/{index}/_stop: ["POST"]
[ ] /_plugins/_replication/{index}/_update: ["PUT"]
[ ] /_plugins/_reports/_local/stats: ["GET"]
[ ] /_plugins/_reports/definition: ["POST"]
[ ] /_plugins/_reports/definition/{reportDefinitionId}: ["GET","PUT","DELETE"]
[ ] /_plugins/_reports/definitions: ["GET"]
[ ] /_plugins/_reports/instance/{reportInstanceId}: ["GET","POST"]
[ ] /_plugins/_reports/instances: ["GET"]
[ ] /_plugins/_reports/on_demand: ["PUT"]
[ ] /_plugins/_reports/on_demand/{reportDefinitionId}: ["POST"]
[ ] /_plugins/_rollup/jobs: ["GET","PUT"]
[ ] /_plugins/_rollup/jobs/{rollupID}: ["GET","PUT","DELETE","HEAD"]
[ ] /_plugins/_rollup/jobs/{rollupID}/_explain: ["GET"]
[ ] /_plugins/_rollup/jobs/{rollupID}/_start: ["POST"]
[ ] /_plugins/_rollup/jobs/{rollupID}/_stop: ["POST"]
[ ] /_plugins/_security/api/actiongroup/: ["GET"]
[ ] /_plugins/_security/api/actiongroup/{name}: ["GET","PUT","DELETE"]
[ ] /_plugins/_security/api/actiongroups/: ["PATCH"]
[ ] /_plugins/_security/api/allowlist: ["GET","PUT","PATCH"]
[ ] /_plugins/_security/api/audit/: ["GET","PATCH"]
[ ] /_plugins/_security/api/authtoken: ["POST"]
[ ] /_plugins/_security/api/cache: ["GET","PUT","POST"]
[ ] /_plugins/_security/api/internalusers/: ["GET","PATCH"]
[ ] /_plugins/_security/api/internalusers/{name}/authtoken: ["POST"]
[ ] /_plugins/_security/api/migrate: ["POST"]
[ ] /_plugins/_security/api/permissionsinfo: ["GET"]
[ ] /_plugins/_security/api/roles/: ["PATCH"]
[ ] /_plugins/_security/api/rolesmapping/: ["GET","PATCH"]
[ ] /_plugins/_security/api/ssl/{certType}/reloadcerts/: ["PUT"]
[ ] /_plugins/_security/api/tenancy/config: ["GET","PUT"]
[ ] /_plugins/_security/api/user/: ["GET"]
[ ] /_plugins/_security/api/user/{name}: ["GET","PUT","DELETE"]
[ ] /_plugins/_security/api/user/{name}/authtoken: ["POST"]
[ ] /_plugins/_security/api/validate: ["GET"]
[ ] /_plugins/_security/api/whitelist: ["GET","PUT","PATCH"]
[ ] /_plugins/_security/authinfo: ["GET","POST"]
[ ] /_plugins/_security/configupdate: ["PUT"]
[ ] /_plugins/_security/dashboardsinfo: ["GET","POST"]
[ ] /_plugins/_security/health: ["POST"]
[ ] /_plugins/_security/tenantinfo: ["GET","POST"]
[ ] /_plugins/_security/whoami: ["GET","POST"]
[ ] /_plugins/_security/whoamiprotected: ["GET"]
[ ] /_plugins/_security_analytics/alerts: ["GET"]
[ ] /_plugins/_security_analytics/correlation/rules: ["POST"]
[ ] /_plugins/_security_analytics/correlation/rules/_search: ["POST"]
[ ] /_plugins/_security_analytics/correlation/rules/{correlation_rule_id}: ["PUT","DELETE"]
[ ] /_plugins/_security_analytics/correlations: ["GET"]
[ ] /_plugins/_security_analytics/detectors: ["POST"]
[ ] /_plugins/_security_analytics/detectors/_search: ["POST"]
[ ] /_plugins/_security_analytics/detectors/{detector_id}: ["GET","PUT","DELETE"]
[ ] /_plugins/_security_analytics/detectors/{detector_id}/_acknowledge/alerts: ["POST"]
[ ] /_plugins/_security_analytics/findings/_search: ["GET"]
[ ] /_plugins/_security_analytics/findings/correlate: ["GET"]
[ ] /_plugins/_security_analytics/logtype: ["POST"]
[ ] /_plugins/_security_analytics/logtype/_search: ["GET","POST"]
[ ] /_plugins/_security_analytics/logtype/{custom_logtype_id}: ["PUT","DELETE"]
[ ] /_plugins/_security_analytics/mappings: ["GET","PUT","POST"]
[ ] /_plugins/_security_analytics/mappings/view: ["GET"]
[ ] /_plugins/_security_analytics/rules: ["POST"]
[ ] /_plugins/_security_analytics/rules/_search: ["POST"]
[ ] /_plugins/_security_analytics/rules/categories: ["GET"]
[ ] /_plugins/_security_analytics/rules/validate: ["POST"]
[ ] /_plugins/_security_analytics/rules/{ruleID}: ["PUT","DELETE"]
[ ] /_plugins/_sm/policies/: ["GET"]
[ ] /_plugins/_sm/policies/{policyName}: ["GET","PUT","POST","DELETE"]
[ ] /_plugins/_sm/policies/{policyName}/_explain: ["GET"]
[ ] /_plugins/_sm/policies/{policyName}/_start: ["POST"]
[ ] /_plugins/_sm/policies/{policyName}/_stop: ["POST"]
[ ] /_plugins/_sql: ["POST"]
[ ] /_plugins/_sql/_explain: ["POST"]
[ ] /_plugins/_sql/close: ["POST"]
[ ] /_plugins/_sql/stats: ["GET","POST"]
[ ] /_plugins/_transform: ["GET","PUT","POST"]
[ ] /_plugins/_transform/_preview: ["POST"]
[ ] /_plugins/_transform/{transformID}: ["GET","PUT","DELETE","HEAD"]
[ ] /_plugins/_transform/{transformID}/_explain: ["GET"]
[ ] /_plugins/_transform/{transformID}/_start: ["POST"]
[ ] /_plugins/_transform/{transformID}/_stop: ["POST"]
[ ] /_plugins/api: ["GET"]
[ ] /_remotestore/stats/{index}: ["GET"]
[ ] /_remotestore/stats/{index}/{shard_id}: ["GET"]
[ ] /_scripts/painless/_context: ["GET"]
[ ] /_search/pipeline: ["GET"]
[ ] /_search/pipeline/{id}: ["GET","PUT","DELETE"]
[ ] /favicon.ico: ["GET"]
[ ] /{index}/_alias: ["PUT","HEAD"]
[ ] /{index}/_aliases: ["PUT"]
[ ] /{index}/_flush/synced: ["GET","POST"]
[ ] /{index}/_mapping/: ["GET","PUT","POST"]
[ ] /{index}/_mappings/: ["GET","PUT","POST"]
[ ] /{index}/_opendistro/_asynchronous_search: ["POST"]
[ ] /{index}/_plugins/_asynchronous_search: ["POST"]
[ ] /{index}/_setting/{name}: ["GET"]
[ ] _plugins/geospatial/_upload/stats: ["GET"]
[ ] _plugins/geospatial/geojson/_upload: ["PUT","POST"]
[ ] _plugins/geospatial/ip2geo/datasource: ["GET"]
[ ] _plugins/geospatial/ip2geo/datasource/{name}: ["GET","PUT","DELETE"]
[ ] _plugins/geospatial/ip2geo/datasource/{name}/_settings: ["PUT"]
[ ] _remote/info: ["GET"]

@dblock are they all plugins/extensions or do some of them going to be a core feature of OS?

Lots in core. I updated the list above.

@dblock are we doing both _plugins and _opendistro? We can totally DRY this. I'll need to update the validator to account for this. I'm also going to do this for knn namespace as an example.

I think _opendistro is there for backwards compat, we should not include it.

I should probably take that back, if we want to claim coverage we need some way to know about these and skip them. Maybe the right way would be to mark them deprecated? What's the correct way to do that @nhtruong?

I'm thinking of having a file named _opendistro.yaml that looks like this:
_reports/on_demand/{reportDefinitionId}: POST
_rollup/jobs: GET,PUT

It will be loaded up with all _plugins/... endpoints that have the _opendistro/... equivalents. The merger tool will take this file into account and generate the opendistro endpoints that are identical to the plugins counterparts but with deprecated and x-ignored set to true. This has a few benefits:

Save the contributors from having to fill-out these endpoints either manually or through any DRY mechanism we come up with (Since the opendistro version has additional flags, DRY'ing wont be simple)
Keep the spec folder tidy and free of hundreds of deprecated endpoints
Once these endpoints are removed from OS, we simply just remove said file and the logic in the merger.

@nhtruong This is a good plan.

https://github.com/opensearch-project/opensearch-api-specification/pull/257 will generate the _opendistro endpoint if the _plugins equivalents exist.

Can you add flow framework to the list in the original comment?
We're feeling a bit left out. ;)
(Yeah, we hadn't released yet when the list was drafted, which points out that you need a way to identify any new plugins and add them.)

(Yeah, we hadn't released yet when the list was drafted, which points out that you need a way to identify any new plugins and add them.)

We actually do. This little box in every PR compares all the available APIs in OpenSearch with the spec and tells you how many undocumented paths we have.


Enhancement: Add link to source to composer.json

This pull request

[x] adds a link to the source to composer.json

Follows https://github.com/php-fig/simple-cache/pull/31.
💁♂ For reference, see https://getcomposer.org/doc/04-schema.md#support.

Thank you, @Jean85!


Cannot force reapproval when requesting an OAuth2 Redirect URI

When I try to generate a redirect URI as part of the OAuth2 flow, and request reapproval (to force Dropbox to prompt for credentials), I get an error returned on the resulting page:
"force_reapprove": expecting either "true" or "false", got "True"
It seems that when the OAuthRequestGenerator generates parameters for the URL it uses the standard (.Net) string representation of true ... which is "True".  Apparently, Dropbox doesn't like that.
Happy to generate a PR for that ...

Released in version 1.1.6


JavaScript: Add new query for ZipSlip (CWE-022).

A first stab at a query to find uses of tar-stream that risk clobbering files in unexpected places if the tar file has malicious ../../../relative/paths in it.

This query is called ZipSlip in C# and Java, but at least the Java version also covers other archive formats, including tar.  So should we perhaps also name this query ZipSlip to have a bit more uniformity across languages? Obviously this query would then need to also cover zip in order not to have a misleading name.

Indeed, I hesitated over exactly that naming choice.
For context, I was directed to decompress-zip as a javascript library to consider writing a query against, and I thought at first its advertised interface appears to be rather different from the C# and Java cases --- both of them (as well as tar-stream) give you archive entries and expect the caller to actually carry out the extraction, but it looked from the documentation that decompress-zip just carries out the extraction itself.
On second look, I see that DecompressZip.prototype.readFileEntries does exist, but it's not clear to me if that is either meant to be used by library users, or used in practice enough to justify writing a query about it.

Talked to @xiemaisi out of band, probably npm package unzip is a fine target for modelling an api that actually returns file entries as data for the caller to process, so that resolves my uncertainty - I'll just make a zip version and call the whole thing ZipSlip for better truth in advertising.

I've made the query apply to zip (specifically the npm library unzip, for which I found at least one example of a seemingly unsafe use in https://github.com/hamedasemi/webrew) instead of tar and tried to use the standard library more effectively.

You might want to run the ql code through the autoformatter (Ctrl+Shift+F in Eclipse or target/jars/qlformat from the commandline).

You might want to run the ql code through the autoformatter (Ctrl+Shift+F in Eclipse or target/jars/qlformat from the commandline).

Awesome! Done.

I left three separate commits in case that's easier to read. Happy to preemptively squash if that's preferred, and I expect to squash before it gets merged into master anyhow.

@mc-semmle (or anyone else from @Semmle/doc), do you think you will find time to do a doc review for this query before feature freeze? Otherwise we'll just go ahead and merge this when it's ready and open another PR to patch up the docs later.

@mc-semmle will be back in the office tomorrow morning to have a look at this.

Ok, does this LGTE then, modulo performance profiling to be done?

My comments have been addressed.

Evaluation (internal link) shows no result differences on default suite.
The relative runtime differences are not, in this case, particularly revealing, so I've added another comparison showing the absolute differences, which is just the runtime of the new query, which looks entirely reasonable.
So apart from the improvements mentioned above I think this is good. :+1:


Add Dockerfile + docker-compose.yml

Demonstrates how sockguard can be used in a sidecar container to a CI agent on a container scheduler (such as ECS or Kubernetes), as opposed to on a Docker host.
Requires https://github.com/buildkite/sockguard/pull/5 (due to the -set-cgroup-parent flag in docker-compose.yml, could be omitted/added separately later if preferable).
Inspiration: https://github.com/CpuID/dockerd-ci-proxy

I might get a buildkite pipeline setup for this!

:+1:

@lox anything holding up merging this in your opinion atm...? I know you have a buildkite pipeline in place now. no tests actually run here right now...? (due to age of master)

So it seems like this is a combination of a general purpose docker image and then an integration test? I reckon let's get the docker image in first and setup to create buildkite/sockguard on docker hub? I'm happy to get that going.

So it seems like this is a combination of a general purpose docker image and then an integration test? I reckon let's get the docker image in first and setup to create buildkite/sockguard on docker hub? I'm happy to get that going.

Re docker-compose.yml + ci_agent_dev - kind of, more a form of "executable documentation" to show how to use sockguard in a sidecar with volume mapping correctly than an integration test persay. I'm happy to review what this looks like, it's more to validate the Docker aspects than anything else.
Spot on re the Dockerfile - a general purpose Docker image.

Re docker-compose.yml + ci_agent_dev - kind of, more a form of "executable documentation" to show how to use sockguard in a sidecar with volume mapping correctly than an integration test persay. I'm happy to review what this looks like, it's more to validate the Docker aspects than anything else.

The first inclination is just to map /var/run/sockguard.sock through from the sockguard container to some other worker container. But that won't work, as if the socket doesn't exist on container startup, you get an empty directory as a volume, which sockguard will error saying dir exists/file in use etc etc. Hence the parent dir as a volume thats mounted between instead.
I thought having this in the repo might save someone else 30~mins of trial and error in future :)

I'll bring in a docker/compose file in https://github.com/buildkite/sockguard/pull/19 and get buildkite/sockguard happening on docker hub.
Perhaps you could bring in cgroup example in a examples/cgroup_parent folder in another PR?

@lox hows that look to you...?

tweaks incoming

ok, better @lox :)


"route is not defined" from SSR server

I'm not quite sure where to put this.
I just verified that its not just my app.
I installed a fresh Laravel project with Laravel Breeze using Vue with Inertia, Inertia SSR and TypeScript.
Then I added a console.log(route('profile')) in my Welcome.vue files <script setup> section. compiled everything with npm run build, started the ssr server with php artisan inertia:start-ssr, disabled JavaScript in my browser and reload the page.
The result is always the same:

Starting SSR server on port 13714...
Inertia SSR server started.

[Vue warn]: Unhandled error during execution of setup function
  at <Welcome errors= {} auth= { user: null } ziggy= {
  url: 'http://ziggy-test.test',
  port: null,
  defaults: [],
  routes: {
    'sanctum.csrf-cookie': { uri: 'sanctum/csrf-cookie', methods: [Array] },
    dashboard: { uri: 'dashboard', methods: [Array] },
    'profile.edit': { uri: 'profile', methods: [Array] },
    'profile.update': { uri: 'profile', methods: [Array] },
    'profile.destroy': { uri: 'profile', methods: [Array] },
    register: { uri: 'register', methods: [Array] },
    login: { uri: 'login', methods: [Array] },
    'password.request': { uri: 'forgot-password', methods: [Array] },
    'password.email': { uri: 'forgot-password', methods: [Array] },
    'password.reset': {
      uri: 'reset-password/{token}',
      methods: [Array],
      parameters: [Array]
    },
    'password.store': { uri: 'reset-password', methods: [Array] },
    'verification.notice': { uri: 'verify-email', methods: [Array] },
    'verification.verify': {
      uri: 'verify-email/{id}/{hash}',
      methods: [Array],
      parameters: [Array]
    },
    'verification.send': { uri: 'email/verification-notification', methods: [Array] },
    'password.confirm': { uri: 'confirm-password', methods: [Array] },
    'password.update': { uri: 'password', methods: [Array] },
    logout: { uri: 'logout', methods: [Array] },
    'storage.local': {
      uri: 'storage/{path}',
      methods: [Array],
      wheres: [Object],
      parameters: [Array]
    }
  },
  location: 'http://ziggy-test.test'
}  ... >
  at <Inertia initialPage= {
  component: 'Welcome',
  props: {
    errors: {},
    auth: { user: null },
    ziggy: {
      url: 'http://ziggy-test.test',
      port: null,
      defaults: [],
      routes: [Object],
      location: 'http://ziggy-test.test'
    },
    canLogin: true,
    canRegister: true,
    laravelVersion: '11.26.0',
    phpVersion: '8.3.10'
  },
  url: '/',
  version: 'ef7dfac2be4457af7cedae810f854f68'
} initialComponent= {
  __name: 'Welcome',
  __ssrInlineRender: true,
  props: {
    canLogin: { type: [Function: Boolean] },
    canRegister: { type: [Function: Boolean] },
    laravelVersion: {},
    phpVersion: {}
  },
  setup: [Function (anonymous)],
  inheritAttrs: false
} resolveComponent=fn<r>  ... >
  at <App>
ReferenceError: route is not defined
    at setup (file:///Users/tii/projects/web/ziggy-test/bootstrap/ssr/assets/Welcome-BnVlHDQj.js:14:13)
    at _sfc_main.setup (file:///Users/tii/projects/web/ziggy-test/bootstrap/ssr/assets/Welcome-BnVlHDQj.js:87:23)
    at callWithErrorHandling (/Users/tii/projects/web/ziggy-test/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:200:19)
    at setupStatefulComponent (/Users/tii/projects/web/ziggy-test/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7783:25)
    at setupComponent (/Users/tii/projects/web/ziggy-test/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:7744:36)
    at renderComponentVNode (/Users/tii/projects/web/ziggy-test/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:645:15)
    at renderVNode (/Users/tii/projects/web/ziggy-test/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:779:14)
    at renderComponentSubTree (/Users/tii/projects/web/ziggy-test/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:730:7)
    at renderComponentVNode (/Users/tii/projects/web/ziggy-test/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:664:12)
    at renderVNode (/Users/tii/projects/web/ziggy-test/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:779:14)

It's always ReferenceError: route is not defined.
That's the problem I have in my application too. With JavaScript running from the browser: No problems at all. Everything works fine.
But without JavaScript, so it definitely comes from the SSR server: route is not defined.
I'm a litte overwhelmed with this... Someone any ideas?

I found a solution by doing this in every component I need routes:
import {route as ziggyRoute} from "ziggy-js";
const route = inject<typeof ziggyRoute>("route")!;

Hi, I have this problem too. I use Inertia Laravel + Inertia/Svelte. Here's the issue I create in my repository: https://github.com/senkulabs/breeze-lite/issues/4. I don't setup any route in my Svelte components. I just use @route blade directive that I put in app.blade.php. That's it. I was thinking that this is more than enough. But, it turns out no.

+1, same issue, but with Jetstream.
I will try the workaround, but I think it's a bug. Probably will be fixed with Inertia 2.0?
Hopefully!

+1, same issue, but with Jetstream.
I will try the workaround, but I think it's a bug. Probably will be fixed with Inertia 2.0? Hopefully!

I run into this myself with Jetstream as well, but only intermittently.

Hi, I have this problem too. I use Inertia Laravel + Inertia/Svelte. Here's the issue I create in my repository: senkulabs/breeze-lite#4. I don't setup any route in my Svelte components. I just use @route blade directive that I put in app.blade.php. That's it. I was thinking that this is more than enough. But, it turns out no.

It turns out that I need to explicitly tell the vite the exact location of Ziggy's route in ssr.js or ssr.ts in order to solve this problem.
- import { route } from 'ziggy-js';
+ import { route } from '../../vendor/tightenco/ziggy';

I have the same issue with Laravel + inertia + vue

import {route as ziggyRoute} from "ziggy-js";
const route = inject<typeof ziggyRoute>("route")!;

I try this, but I got new error:
TypeError: route is not a function

+1 i have the same issues.... Route is not defined only in ssr


Latest stable version of Opera is wrong

Hey @Fyrd,
According to http://www.opera.com/docs/history/, Opera 37 is the latest stable version while http://caniuse.com/#feat=web-bluetooth shows for instance Opera 39.
Can we fix that?

That page seems to be out of date (note: "Last update: 2016-05-04"). They announced 39 as the latest version here: http://www.opera.com/blogs/desktop/2016/08/personalized-newsreader-improved-video-popout-in-opera39/


Create hello.java

Please put them in a directory with your username as your directory name.
Cheers!


Fix kube-addon retrying.

You can't increment tries if it is a readonly variable.

That is a good point.


Add a parser for a list of links (see issue #39):

basic_link_info method in parse.py to avoid code duplication.

Fetch method to get missing titles.

Fix some HTML syntax errors in the templates.

Simpler version of html_appended_url in utils.py using urlsplit.

Update the README accordingly. Remove some repetition and minor style improvements.

Add instructions to install requests (which was already used in utils.py). Add requirements.txt.

Fix a bug where a KeyError would be thrown when generating the templates if screenshots or PDFs are disabled.

If FETCH_WGET_REQUISITES is disabled, then wget stores the output in a different way, which was not handled and resulted in bugs. This has been corrected.

@frinkelpi thanks so much for this PR!  There's a bunch for me to look over here.
Some of these changes I can approve immediately, but some of them I want to clean up a bit, mind splitting this PR into a few separate ones so that I can review the changes independently?
PRs:

README readability/style changes
FETCH_WGET_REQUISITES fix

Unfortunately I cant re-open this PR because github prevents re-opening closed PRs after a force-push.
I definitely want these changes though! You're welcome to re-submit it as-is or as separate PRs.  Smaller individual PRs would help me review and merge faster, but it's not a necessity if you're ok waiting longer to have these changes merged.  I will work on making some edits and then merge when I next have a few spare hours for this project.  I usually only get a chance to work on this for a few hours per month, apologies if it's a long wait!


CLI show no error on timeout

##Bug description
Steps to reproduce:
run the next cli command

./conjur init -u https://siteNotExist.com
Current Results:
!image-2021-12-23-17-15-25-178.png|thumbnail!

Expected Results:
Reason: < informative message >
Additional info:
The CLI catch errors and show error messages. in this case we get a Timeout error from aiohttp which does not have error message.
##Found in version
NextVersion
##Workaround Complexity
There's an easy workaround
##Workaround Description
User can run the command in debug mode and will get the info that this is a timeout error

./conjur -d init -u https://siteNotExist.com

##Affects Version/s
##Link to JIRA bug
https://ca-il-jira.il.cyber-ark.com:8443/browse/ONYX-15160

https://ca-il-jira.il.cyber-ark.com:8443/browse/ONYX-15160


Wrong replace directive warning

Hi, i am using your linter but met a bug(or couldn't understand linter logic)
There was a replace for one pkg, after work has been completed i removed line with replace(last line in go mod) executed go mod tidy and than got this error. But there is no line with replace in go.mod - how to fix this or is this a bug?

Hi,
can you provide a minimal reproducible example?

Same problem here, and cannot provide a reproducible example as this happens with proprietary code. Like the original poster, in a recent commit there used to be a replace in the go.mod but it was removed and I still get the message. I suspect this is caused by a compilation cache somewhere.


Natalie's drawing app milestones and starter code - edit

@nataliele
You need the layout/author/title section.

@EternalFootman they're there. Because I'm editing an old post so you cant see them and only see the part I'm editing. If you try clicking View or sth you'll see the whole post. Thanks for merging!

@nataliele I'm going to merge this.  Since there were multiple merges to the same place in a file just doublecheck the post
@EternalFootman natalie is right on this one- the post itself already exists- github just shows the changes. the full file can be seen by clicking View: https://github.com/silshack/spring2016/blob/nataliele-patch-4/_posts/nataliele/2016-02-17-nataliele-drawingappmilestones.md


Add no_bulk_receive! option to ensure each event is processed individually

no_bulk_receive! ensures that agents which connect to an external only receive one event per job this ensures that failed and retried jobs do not run twice for the same event.
Fixes #1226
no_bulk_receive! might also be an option for the EvernoteAgent, GrowlAgent and HumanTaskAgent, but I don't know the agents/services well enough to ensure it has no negative effects.

Makes sense!


conflict resolution fix for loss-of-privilege case

Reproduction case begins with:
`grunt adbpush-tables-rowlevelaccessdemo`

Reset app on a server, then sync down to a second device. Note that re-initialization after sync is broken (see other issues - -the UI and workflow have become destabilized). This causes the demo to be broken because the properties.csv and key-value-store is not being properly scanned and reloaded after a sync.
In any case, verify username with admin privileges on both tablets and open ODK Survey and edit the Weather Conditions table, appending to the labels  either "on tablet 1" or "on tablet 2" for all entries.
Now sync tablet 2.  Then sync tablet 1.
Tablet 1 will pop open the resolve conflicts screen after the sync completes. Open the show-all-open-apps screen and swipe left to close ODK Services.
Now Open ODK Services and go to Settings / Reset Configuration.
This resets the user to anonymous.
Now choose resolve conflicts. All the conflicts are now automatically resolved and a toast is displayed saying N conflicts were automatically resolved by taking the server's changes.
NOTE: there is another issue open for enabling privileged users to resolve the permissions columns if they are in conflict. Currently, if you only change permissions on a record on both devices, these changes silently resolve to the server's settings and the set of permissions changes from the last sync are silently discarded.

Had to redo the changes after the big merge. Those are here: https://github.com/opendatakit/services/pull/27


Moved secret token to enviornment variable for production deployments

For production deployments, set the secret token in the .env file, as such:
SECRET_TOKEN=<30+ character random string>
For testing and development deployments, this pull request will default to a secret token of 30 * 'x'.

We already handle this issue in a different way. See config/deploy/local.rb, line 17:
set :linked_files, (fetch(:linked_files) || []).concat(%w{config/server.yml config/newrelic.yml config/initializers/secret_token.rb})

On deployment, this causes the secret_token.rb file to be a symlink to a file local to the production and staging servers, shared/config/initializers/secret_token.rb, which contains a unique secret (generated specific to each server).
If you decide to stick with the current approach, it should likely be documented in the checked in secret_token.rb file to avoid future confusion. It is already documented in the deployment/ubuntu-deployment-steps.txt file.

Aha, I didn't notice that. Thanks Pete!


Setup database

Attempt 1: Pull request for setupDatabase feature.

Merging now since resolved conflicts related to added dependencies.


I want to add text between doughnut chart by fillText method on mouse hover but unfortunately its not working correctly

Please consider the following before submitting an issue:
Guidelines for contributing: https://github.com/chartjs/Chart.js/blob/master/CONTRIBUTING.md
Example of issue on an interactive website such as the following:

http://jsbin.com/
http://jsfiddle.net/
http://codepen.io/pen/
Premade template: http://codepen.io/pen?template=JXVYzq

Closing since I think this is better asked on stack overflow. A search of the issues here will bring up similar things that you could adapt.


Fix missing account in app nav during PSBT signing with Ledger (Bitcoin only)

I will fix this as part of work in https://github.com/leather-io/extension/issues/4859.
In the screenshot above for this bug we aren't showing anything in the header.
Now we show a logo instead of the account

That changed when implementing the global header. I will change it show that we show the account instead of the logo


Include service description into PDF version of docs

A PDF generated by lurker convert -f pdf -c api.md will now include service description.

Coverage decreased (-0.2%) to 70.42% when pulling e4b8b0f465969d4602098d0015ce77515fb61250 on nebolsin:feature/service-description-in-pdf into a31d72df637561a99a96ff0c0babd22155b3e3e9 on razum2um:master.


sap_ha_install_hana_hsr: Doesn't work with multiple interfaces

The variable configuration asks for a node name, which has to be a shortname and not a FQDN
This does not work on a multihomed system where the names and interfaces  are configured like this
<IP_ADDRESS>    hana1.lab.example.com hana1
<IP_ADDRESS>    hana2.lab.example.com hana2
<IP_ADDRESS>    hana1.private.example.com
<IP_ADDRESS>    hana2.private.example.com

If I choose the following config, the system fails with multiple entries of  hana1 in /etc/hosts
  - node_name: hana1
    node_ip: "<IP_ADDRESS>"
    node_role: primary
    hana_site: DC01

  - node_name: hana2
    node_ip: "<IP_ADDRESS>"
    node_role: secondary
    hana_site: DC02

If I choose this config  the system doesn't do anything due to a wrong comparison (when statement)
  - node_name: hana1.lab.example.com
    node_ip: "<IP_ADDRESS>"
    node_role: primary
    hana_site: DC01

  - node_name: hana2.lab.example.com
    node_ip: "<IP_ADDRESS>"
    node_role: secondary
    hana_site: DC02

Output from playbook
[community.sap_install.sap_ha_install_hana_hsr : SAP HSR - Enable HANA System Replication on primary node] ***************************************************************************************************
task path: /home/student/.ansible/collections/ansible_collections/community/sap_install/roles/sap_ha_install_hana_hsr/tasks/configure_hsr.yml:17
skipping: [hana1.lab.example.com] => (item=hana1.lab.example.com)  => {"ansible_loop_var": "item", "changed": false, "item": {"hana_site": "DC01", "node_ip": "<IP_ADDRESS>", "node_name": "hana1.lab.example.com", "node_role": "primary"}, "skip_reason": "Conditional result was False"}
skipping: [hana1.lab.example.com] => (item=hana2.lab.example.com)  => {"ansible_loop_var": "item", "changed": false, "item": {"hana_site": "DC02", "node_ip": "<IP_ADDRESS>", "node_name": "hana2.lab.example.com", "node_role": "secondary"}, "skip_reason": "Conditional result was False"}
skipping: [hana2.lab.example.com] => (item=hana1.lab.example.com)  => {"ansible_loop_var": "item", "changed": false, "item": {"hana_site": "DC01", "node_ip": "<IP_ADDRESS>", "node_name": "hana1.lab.example.com", "node_role": "primary"}, "skip_reason": "Conditional result was False"}
skipping: [hana2.lab.example.com] => (item=hana2.lab.example.com)  => {"ansible_loop_var": "item", "changed": false, "item": {"hana_site": "DC02", "node_ip": "<IP_ADDRESS>", "node_name": "hana2.lab.example.com", "node_role": "secondary"}, "skip_reason": "Conditional result was False"}

TASK [community.sap_install.sap_ha_install_hana_hsr : SAP HSR - Register secondary node to HANA System Replication] ***********************************************************************************************
task path: /home/student/.ansible/collections/ansible_collections/community/sap_install/roles/sap_ha_install_hana_hsr/tasks/configure_hsr.yml:38
skipping: [hana1.lab.example.com] => (item=hana1.lab.example.com)  => {"ansible_loop_var": "item", "changed": false, "item": {"hana_site": "DC01", "node_ip": "<IP_ADDRESS>", "node_name": "hana1.lab.example.com", "node_role": "primary"}, "skip_reason": "Conditional result was False"}
skipping: [hana1.lab.example.com] => (item=hana2.lab.example.com)  => {"ansible_loop_var": "item", "changed": false, "item": {"hana_site": "DC02", "node_ip": "<IP_ADDRESS>", "node_name": "hana2.lab.example.com", "node_role": "secondary"}, "skip_reason": "Conditional result was False"}
skipping: [hana2.lab.example.com] => (item=hana1.lab.example.com)  => {"ansible_loop_var": "item", "changed": false, "item": {"hana_site": "DC01", "node_ip": "<IP_ADDRESS>", "node_name": "hana1.lab.example.com", "node_role": "primary"}, "skip_reason": "Conditional result was False"}
skipping: [hana2.lab.example.com] => (item=hana2.lab.example.com)  => {"ansible_loop_var": "item", "changed": false, "item": {"hana_site": "DC02", "node_ip": "<IP_ADDRESS>", "node_name": "hana2.lab.example.com", "node_role": "secondary"}, "skip_reason": "Conditional result was False"}

The most critical part of the current implementation is this command for checking /etc/host:
    awk '(/{{ item.node_name}}/ && !/^{{ item.node_ip }}/) || (/^{{ item.node_ip }}/ && !/{{ item.node_name }}/)' /etc/hosts

This check fails if in the /etc/hosts a hostname has the substring item.node_name. This is slightly fixed in https://github.com/sap-linuxlab/community.sap_install/pull/182
I replaced /{{ item.node_name}}/ with  /{{ item.node_name +  " "}}/  which makes it little better, but if anybody knows a pendant to grep -w in the awk regular expression statement, please let me know and I update it. everything else is unreliable

Merged into DEV branch by Janine


COSMIC GPS upgrade

Addresses #224.  Fixes a number of issues with the cosmic_gps instrument object.
Summary of changes

cosmic2013 and cosmic have been combined into a single cosmic_gps instrument.  Reduces code duplication.
Following the guidelines on the CDAAC website, download will check for the 2013 re-processed data first.  If this is unavailable, pysat will next check for the post-processed data to download.
Fixed a bug where shutil would place newly downloaded data in a nested subdirectory if data had been previously downloaded.
Fixed a bug introduced in #208 where multiple processes tried to use the same variable (data) due to renaming. Restored original data and output nomenclature.
Updates to documentation and docstrings reflecting changes.

Coverage increased (+1.4%) to 79.093% when pulling 232b62b00da21c0db4b4bd3fe7887f7a2a00817d on cosmic_reduce into 1f21f8afd06c558fc8bc08c500e3c377c4a879bc on develop.

Coverage increased (+1.4%) to 79.093% when pulling 232b62b00da21c0db4b4bd3fe7887f7a2a00817d on cosmic_reduce into 1f21f8afd06c558fc8bc08c500e3c377c4a879bc on develop.


updated README.md

Contributing
If you want to add a project to this list, please make sure that:

[x] You read the contributing guide
[x] The project can't be just an "add your name" or simply + 1 contribution to hacktoberfest
[x] Place them in alphabetical order
[x] One repository per PR/contribution - avoid conflicts and simplify review
[x] Your pull request is not spammy just adding an empty line, otherwise it will be marked as invalid and not count to hacktoberfest.

If they meet the requirements above, feel free to create a PR. Happy Hacking! :sparkles:

I have added a repository in first timer section in Readme.md file


CANNOT excute "node example.js"

Hi there.
I tried installing and running "node example.js" following this README but failed.
I got a error below.

/home/bun/Downloads/google-home-notifier/node_modules/mdns/lib/browser.js:86
dns_sd.DNSServiceBrowse(self.serviceRef, flags, ifaceIdx, '' + requested_type,
^

Error: dns service error: unknown
at new Browser (/home/bun/Downloads/google-home-notifier/node_modules/mdns/lib/browser.js:86:10)
at Object.create [as createBrowser] (/home/bun/Downloads/google-home-notifier/node_modules/mdns/lib/browser.js:114:10)
at Object. (/home/bun/Downloads/google-home-notifier/google-home-notifier.js:4:20)
at Module._compile (module.js:641:30)
at Object.Module._extensions..js (module.js:652:10)
at Module.load (module.js:560:32)
at tryModuleLoad (module.js:503:12)
at Function.Module._load (module.js:495:3)
at Module.require (module.js:585:17)
at require (internal/module.js:11:18)

Can anyone help me out?
My environment is,
Xubuntu(on Chromebook)
node -v : v9.2.1
npm -v : 5.5.1
Thank you in advance.

off course I completed " After npm install" step.

Hi,
I have the same issue and haven't managed to solve it as well..

solved it!
I replaced mdns to mdns-js and it worked.
pilyx, please try editing package.json and google-home-notifier.js.
see the link below (japanese site though).
https://qiita.com/tkyko13/items/163e80d3b65543d6a9da#_reference-2b80e6878f96b21b1c07
I'll try to help you solve this.

Hi !
Thank you bun-git. Works perfectly now!
Cheers

great!


Fix README typo and add 2022-07 new members post

Slightly changed closing paragraph and and opening paragraph from steering committee's shared draft -- added a reference to the previous post in the opening paragraph.
I'll be out of town this upcoming week, so if any changes need to be pushed, @rossabaker or others are welcome to do so! I should still have access to comment on this PR and press buttons via my phone, though. I set the date to this coming Monday for now -- open to that change as well.
FYI: I can't get the site to build via the first recommended method in the README, so I haven't been able to preview these changes other than via my Markdown viewer. Unfortunately I don't have time to look too deep into it yet...
gist in case it may be worth a separate bug report, or otherwise I may have missed a build step: https://gist.github.com/JasnaMRB/8600a578865596cdb56ed25bf2eb4d8b

I'll merge and tweet when I wake up in the morning, unless someone beats me to it.

Got the merge in 🙂 baton pass to you for the tweet @rossabaker (or others)


[PE-D][Tester A] Should include what certain parts of UI mean in UG

In the UG, there are screenshots of the UI but some parts of it could guide the users more. The quantity and deadline of orders can be inferred but was not intuitive when I first opened the app. It would be clearer if you labeled what certain parts of the UI mean in the "Navigating the application" section of the UG or add labels within the app GUI eg. 'Quantity: 10' instead of just '10'.

Labels: severity.VeryLow type.DocumentationBug
original: bokuanT/ped#1

Update object ui card


Bring back the node type display

Currently, once we edit the name of the node, we no longer have any indication of what type of a node it is. We probably should somehow still display the node type

Ah, good point.

I had a pattern that was "Title (nodetype)" for this reason

I need to revisit the exact styling of the title here, but will move forward with other pieces for now.


Create a CODE_OF_CONDUCT.md

Create a CODE_OF_CONDUCT.md file and your content.
Research the structure in others projects.

i can do this, assign me.

@RuanAragao please go through the pr.


[Feature Request] Adding Localization

First, thank for the great plugin that saved us lot of time!
I would like to request a feature on localization. Our app name is localized using I2Localize, it would be great if the sticker app name can be localized too to match our main app name, in other language...
I'm not an iOS geek and I assume adding a group of InfoPlist.strings and Localizable.strings will do the job? Or even better, integrate with I2Localize and make all these automatic.

This is something I am lacking myself, so it would be really nice, but it is beyond the scope of this plugin. I think that this is something that could be supported by the localization plugins instead. Especially considering that they probably already have the code for doing this.

However, I will make an effort to add this functionality to the https://github.com/agens-no/PolyglotUnity plugin

Ok thanks, I also create request in I2, hopefully it will be implemented and easy for him.


Any sample code? Does this work with VB.NET also?

I ended up using aria2c with the library Aria2NET. Much easier to use and faster


SNOW-1445381: Override docstrings for Series.str/Series.dt

Which Jira issue is this PR addressing? Make sure that there is an accompanying issue to your PR.

Fixes SNOW-1445381

Fill out the following pre-review checklist:

[ ] I am adding a new automated test(s) to verify correctness of my new code

[ ] If this test skips Local Testing mode, I'm requesting review from @snowflakedb/local-testing

[ ] I am adding new logging messages
[ ] I am adding a new telemetry message
[ ] I am adding new credentials
[ ] I am adding a new dependency
[ ] If this is a new feature/behavior, I'm adding the Local Testing parity changes.

Please describe how your code solves the related issue.

This PR moves the docstrings of StringMethods and DatetimeProperties to use docstring overrides.

Can we verify that the total number of doctests passing for string methods is the same before and after this change - just to make sure we did not miss anything by mistake?

Good idea.
On this PR (d5d02e), pytest src/snowflake/snowpark/modin/pandas/series_utils.py -k StringMethods runs 15 tests. Latest main (ed9b5b) also runs 15. I'll do the same check for DatetimeProperties once I fix them (seems like the doc plugin isn't properly overriding them).

Can we verify that the total number of doctests passing for string methods is the same before and after this change - just to make sure we did not miss anything by mistake?

Good idea.
On this PR (d5d02e), pytest src/snowflake/snowpark/modin/pandas/series_utils.py -k StringMethods runs 15 tests. Latest main (ed9b5b) also runs 15. I'll do the same check for DatetimeProperties once I fix them (seems like the doc plugin isn't properly overriding them).

Sounds good.

DT properties should be fixed -- current PR and latest main both run 8 doctests.


Compact Search

As a search user, I'd like to have an option to view search results in a compact form, so I can see more results per page, and so I can focus on course numbers and titles (in course search) and resource titles and courses titles (in resource search)
Designs and Mockups
compact course search, updated 6/23
compact resource search, updated 6/23
expanded course search, with consistent colors
Acceptance Criteria:

[ ] Add a control for switching between expanded and compact search
[ ] hide the control for now, so we can test compact search before releasing it to users (essentially, this is a UI-based feature toggle)
[ ] include the control setting in the URL so we can share compact search results, and so the setting will during a search session

Out of Scope

Should we set a cookie with the search preference?

This is done but we hid the toggle to change the view so it's not available to all users. It's available by adding u=compact to ocw search uls. https://ocw.mit.edu/search/?u=compact

@abeglova can you open a PR to make the switch visible?

Can we close this now?
Where was the PR to make the button permanently visible?

Here is the PR for making the button permanently visible https://github.com/mitodl/ocw-hugo-themes/pull/953


Send '|deinit' message when trying to hardlink to room aliases

Fixes the problem with room alias "ghost rooms".

This is a very straightforward solution that I can't think of any disadvantages for.

deinit is above joinResult now.


[Cedar 3.0] Remove deprecated features

Category
User level API changes
Describe the feature you'd like to request
We have one API and one language feature that are commented as being deprecated. We should consider removing them from the code base in the next major release.

The EntityUid::from_str() API has been deprecated since version 1.2 [link]
The __expr syntax for specifying Cedar expressions in JSON has been deprecated since version 1.2.

Describe the solution you'd like
Remove the code corresponding to the features above. Removing EntityUid::from_str() should be quick. Removing references to __expr will be more involved. It will also require updating our integration tests, which still use this syntax.
Describe alternatives you've considered
N/A
Additional context
No response
Is this something that you'd be interested in working on?

[ ] 👋 I may be able to implement this feature request
[X] ⚠ This feature might incur a breaking change

Made a separate issue for updating the integration tests #181

Removing EntityUid::from_str() may not be trivial, as the CLI uses it for the --principal, --action, etc arguments.  The CLI arguments will probably have to be specified in a different format.

Closed by #319 and #333


Dynamical impact

I would like to be able to quickly calculate dynamical impact. The "traditional" definition is (informally) as follows:
Take an initial state $X(0)$ and flip the bit in the position $i$ of interest to obtain $X^{\neg i}(0)$. Allow these states to evolve in time under synchronous update and compute $P^{\neg i}_{X}(t)=X^{\neg i}(t) \veebar X(t)$.
The dynamical impact of $i$ on $j$ at time $t$ is the average value of the $jth$ entry of $P^{\neg i}_{X}(t)$, where the average is taken over all $X(0)$. Generally, this can only be estimated by sampling.
Several generalizations are possible:

Average over all possible asynchronous updates (selecting the same update node for the two compared trajectories)
Prevent perturbed nodes from updating
Do not perturb any nodes, but use asynchronous updating (without concern for update selection alignment)
Perturb multiple nodes
Compute moving averages in time to avoid sensitivity to phase offsets

The above list of generalizations is not meant to be exhaustive necessarily. The "vanilla" version is higher priority than these possible generalizations.

Currently being addressed in dynamical-impact branch.
So far, the basic definition is implemented using a sampling approach (so only the exact calculation is not implemented).

From the generalizations above,

Implemented; can specify update scheme in dynamical_impact
Possible using the experiment features
Implemented as trajectory_variance
Not done
Not done

Also, only the sampling approach is used right now.

is now completed and I have merged the changes (#11). With this, I'm marking this issue resolved. Point 5 will require additional considerations and might not be something we really want to do.


weather: init at 2.0

Kinda hacky approach for copying the things to the store, but as this is shipped without a makefile, setup.py or whatever, I guess I have to do it this way, right?
Works locally, though I didn't do extensive testing.

cc @domenkozar

If it doesn't ship with setup.py, there is no reason to use buildPythonPackage. Just use mkDerivation

Doesn't buildPythonPackage help me with patching the #!, for example?

No, wrapPython does.

@matthiasbeyer did you test the package? I see no wrappers so I'm not sure this would work.

I test-called it as ./result/bin/weather -h and it worked. I wouldn't merge, though, I want to do some more testing asap.

Why did you merge?


[C++] Struct and its substruct length problem

Describe the bug, including details regarding any error messages, version, and platform.
when we use builder to generate  recordbatch . call the flush(). it returns the error: All fields must be same length when calling Flush.
and we look at the source code. it checks all children`s length in a struct and ensure they are the same.
but Our scenario is. baseStruct in topStruct. and in each baseStruct . it is a table. (each table has diff length.)  in java it is okay to generate recordBatch and Serialize or deSerialize it.
but in c++ . we meet this problem.
We know that the lengths of the fields under a struct should be the same, but if its sub-fields are all structs, We should think that the length of struct is 1 or 0, right? Then inside the subStruct are the respective lengths.
void MakeStruct(arrow::ArrayBuilder* builder, int size) {
  if (builder == nullptr) {
    std::cout << "nullptr" << std::endl;
  }
  std::cout << builder->num_children() << ":" << builder->type()->id() << std::endl;
  for (int i = 0; i < builder->num_children(); ++i) {
    auto child_builder = builder->child(i);
    if (child_builder->type()->id() == arrow::Type::STRUCT) {
      MakeStruct(child_builder, size);
    } else if (child_builder->type()->id() == arrow::Type::INT64) {
      auto int64_builder =
          arrow::internal::checked_cast<arrow::Int64Builder*>(child_builder);
      if (int64_builder == nullptr) {
        std::cout << "int64_builder nullptr" << std::endl;
      }
      for (int j = 0; j < size; ++j) {
        auto status = int64_builder->Append(5);
      }
    }
  }
  auto struct_builder = arrow::internal::checked_cast<arrow::StructBuilder*>(builder);
  for (int i = 0; i < size; ++i) {
    auto res = struct_builder->Append(true);
  }
}
void RunSchema() {
  auto field_user = arrow::field("user", arrow::struct_({
    arrow::field("user_id", arrow::int64()),
    arrow::field("user_age", arrow::int64())
    }));
  //auto field_online = arrow::field("online", arrow::struct_({}));
  auto field_s = arrow::field("shared", arrow::struct_({field_user/*, field_online*/}));
  auto field_item = arrow::field("item", arrow::struct_({
    arrow::field("item_id", arrow::int64()),
    arrow::field("pv", arrow::int64()),
    arrow::field("uv", arrow::int64()) }));
  auto field_i = arrow::field("iterable", arrow::struct_({field_item/*, field_online*/}));
  auto schema = arrow::schema({field_s, field_i});
  arrow::MemoryPool *pool = arrow::default_memory_pool();
  std::unique_ptr<arrow::RecordBatchBuilder> builder;
  auto builder_res = arrow::RecordBatchBuilder::Make(schema, pool);
  if (builder_res.ok()) {
    builder.reset(builder_res.ValueUnsafe().release());
    std::cout << "builder ok" << std::endl;
  } else {
    std::cout << "builder fail" << std::endl;
    return;
  }

  auto field0_builder = builder->GetField(0);
  auto data_type0 = field0_builder->type();
  if (data_type0->id() == arrow::Type::STRUCT) {
    MakeStruct(field0_builder, 1);
  }

  auto field1_builder = builder->GetField(1);
  auto data_type1 = field1_builder->type();
  if (data_type1->id() == arrow::Type::STRUCT) {
    MakeStruct(field1_builder, 10);
  }
  auto result =  builder->Flush();
  if (result.ok()) {
    auto record = result.ValueUnsafe();
    std::cout << record->ToString() << std::endl;
  } else {
    std::cout << "builder flush fail " << result.status().ToString() << std::endl;
  }

  std::cout << schema->ToString() << std::endl;
  std::cout << schema->num_fields() << std::endl;
}

Component(s)
C++, Java

Hi @chenyuanxing, by definition all fields in a RecordBatch must have the same length. It is noted in https://arrow.apache.org/docs/format/Columnar.html#serialization-and-interprocess-communication-ipc:

Semantically, a record batch is an ordered collection of arrays, known as its fields, each having the same length as one another ...

P.S. Not related to this issue but it's recommended to use ARROW_RETURN_NOT_OK and ARROW_ASSIGN_OR_RAISE to deal with arrow::Status and arrow::Results instread of manually checking them. See https://arrow.apache.org/cookbook/cpp/basic.html#working-with-status-and-result

thanks @js8544 ,So Arrow cannot represent unbalanced trees or complex structures (Even if there are struct and nested structures, it can only be a table with the same length). and It is the lack of restrictions in java that makes it possible to implement in java . is this correct？

I understand that the sub-fields under the same struct must have the same length, but I don't understand why several sub-structs under a struct must have the same length.

Why not putting them into two different record batches, one for user and one for item?

Because I have data with many dimensions, not just these two, So I consider putting them all into one big arrow. and use struct in struct to organize them

Even some data is list or map structure.

I see. My suggestion is to store each dimension as a separate RecordBatch. If you absolutely need to put them into one, you would need to pad the shorter arrays with nulls to match the longest one.

If I replace the top struct with a map, can this problem be solved? I see that in java, setting the length in the struct will be passed to all the underlying field structures, but the list and map will not.

I am not sure what would your ListArray/MapArray look like. Could you elaborate on their data types or structures?

Like this. and the subStruct1 has different length with subStruct2

Yes, the one in your img can be stored in a Struct<sub_struct_name: VarBinary, sub_structs: List<Struct<field1: int64, field2: float, field3: float>>>, given that both subStructName1 and subStructName2 have the same schema <field1: int64, field2: float, field3: float>

em.. maybe my img is not very clear. it should be like this.

subStruct has different shema and hive different length.

I don't think they can be stored in any single Arrow structure.

or Is it ok if they contain different schemas and the same length

when we use builder to generate recordbatch . call the flush(). it returns the error: All fields must be same length when calling Flush.

That's what you were original trying to solve :), isn't it? If they are of the same length, you can simply put them in a RecordBatch.

yeah . So I want to serialize my subStruct as a bytes.  so they have same length 1.


Fix query that gets global tax rate

This fixed ServiceTax->getTaxRateForClient() method when there is no tax matching client country.

Thanks for noticing!


Provide a .tar.gz version of documentation

We need to create a .tar.gz to satisfy the index page's claim that "you can also download an offline HTML ... copy".
This issue is a part of TODO.

I'm not sure who exactly raised this issue(sorry), but still.
With a .tar.gz version we think about p6doc script and doc/ directory to have an ability to type p6doc something, or html/ directory and app.pl script to have an ability to start a local server with docs? Or both?
It is easy to write a command to tar, but it is important to know what exactly we need to archive. With every(or every 5-th, for example) doc build we need to remove an old version and generate new. And we need to add a link to this archive, maybe on About or even main page.
Currently, with both option an archive weight is about 10 mb.

I believe the thought is just a file containing all the files in html/

Just in case: the actual command is tar -czf perl6-documentation.tar.gz app-start app.pl assets/ html/ Makefile.

FWIW, I tried unpacking an archive of all the HTML files on Windows and there are numerous issues. The first is we have files which chars that are invalid on windows (like < and >). And also there seem to be some sort of encoding issues with files that have fancy pants Unicode chars in them:

This is on Windows 7, unpacked with 7-zip, archive made with tar -cvvf ...

Only thing I can think about is to URI-encode filenames. Short of ditching
Windows 7, that is. Probably W10 won't have that problem.

Also, all the assets have absolute paths, so search is busted and site is unstyled:

The actual issue is creating the .tar.gz, doing so automatically or making one that works in Windows?

Personally, I imagined the docs site being made into an SQLite database with something like (currently non-existent) Pod::To::SQL. Then instead of messing with tarballs the users would just download the snapshot of the database and p6doc could even have an option to be a local HTTP server to cater it (instead of just shoving the goods on the command line)

Why not tagging releases and let p6doc to download "stable" releases of the doc? They can be therefore served by a local server.
I don't see the point in having the docs within an sql database, since we can already download via git the exact version we need.

This isn't anything to do with p6doc which works currently now using the source pod6 and doesn't need a copy of the HTML.
There was another ticket suggesting p6doc become a web server as a workaround for now fixed speed issues which was recently closed. Personally I'd rather see this repo split out into pure pod docs, web site generation code and p6doc (command line) before more functionality is added (although I like the idea of SQLite and webservers in general). Neither do I want to see the p6doc command itself made slower with extra functions yet.
I don't  see why this is to do with a .tar.gz (which would be no use on Windows).
Everything is in place to create a one page flat HTML file using the current repo since it includes a dependency on  Pod::To::BigPage which will do exactly that if you just run "pod2onepage".
So I assume the argument is where this single page is made available. Probably a good start would be to run "pod2onepage" as part of the web site build (if it doesn't do this already) and copy it to a location on the website.  I had thought of supplying it with Rakudo Star but I think it would be better to convert it to a PDF like
https://github.com/rakudo/star/blob/master/docs/perl6intro.pdf
(which also exists as a website)

I don't see the point in having the docs within an sql database, since we can already download via git the exact version we need.

You can only download the source files, which is kinda useless.

So I assume the argument is where this single page is made available.

It's already available and is linked to from the first paragraph of the site.

So I assume the argument is where this single page is made available.
It's already available and is linked to from the first paragraph of the site.

So the ticket should be closed?

I'm all for closing 👍

So the ticket should be closed?

👍


I have no internet or network conection and everything seems ok

Hi good night. I would like to thanks every people make this project true! its a great job.
Buy i have a problem i can't resolve.
I have Windows 10 PRO 22H2 and i have installed the WS4W <IP_ADDRESS> and follow the instructions...
Every parts of the list are in green, NAT Routing included
I opened the udp (also TCP) port to the phisical LAN adapter
But when i connect from the phone to my computer i have no internet on the phone,
I dont know what to do and i need some help please!!!
What should i do???
sorry about my english!
A lot of thanks!

Hi @koliflores,
Can you view the server status while you connect your phone? Do you see a successful handshake?
Can you also send screenshots of your server and client configs (if you feel comfortable doing that)? Remember to blank out the keys and public addresses.

hi, thanks for your answer, i'll show you everything you need, i'm so interested to use this vpn server.
I can't see the handshake or i don't know how to see, when i connect from my phone to the server, i have no internet, on the phone.
I make a ping to mi client ip and it answers but when i make ping to the server, it doesn't respond, it doesn't work. all packets lost.
Here is my server config:

And here is my client config:

The field "Latest Handshake" is in blank
My ethernet adapter has <IP_ADDRESS>  private ip (manually added)
And the port on the router is opened

This is an screenshot from my phone with connection started, i don't have internet and in the browsers appears DNS_PROBE_STARTED

And this is the SERVER STATUS... when the phone has the connection active

Sorry about this large post, but i'm very interested to have my own vpn server with WS4W
Thaks a lot. I hope you could help me!!
THANKS!!!!!
I also tried with <IP_ADDRESS> range of private IPs

Thanks for all the details! Nothing stands out to me as obviously wrong, so this may be hard to diagnose.
The fact that there's no mention of a handshake in the server status is interesting. It means the clients can't even make the initial connection to the server (nevermind getting internet access). Here's an example of what a good handshake would look like.

Here are a couple things to check. Run these commands in PowerShell and let me know the results.
Get-NetNat -Name wg_server_nat

Get-NetNatExternalAddress -NatName wg_server_nat

netstat -anob | select-string wireguard.exe -context 1,0

Hi, good night thanks for your answer!!

I don't know what i'm doing!!
I'm in your hands!!

I am also not always sure what I'm doing. 😄
Can you open the WireGuard application and go to the Logs tab and then attempt to connect the client?
This is what a successful handshake looks like.

HI, here it is

Mi Android phone is connected with 4g to the Wireguard config

Hey @koliflores, I'm a bit stumped here as everything you have looks good!
With regards to the WireGuard logs, did you attempt to connect your client while watching the logs?
The only other thing I can think of is that your mobile or home ISP have blocked that port. Could you try another port?
P.S.  Not sure if you want to hide that.

Hi @micahmo I don't have word to thanks for your answers!!!
A lot of thanks!!!!
With your answer I made my own investigation and finally I think I know what's the problem!!!!
When you said me that everything was right I used an Android application called "fing" to see if the ports were opened!!!!
It was a surprise to see that any of my opened ports were open!!!!
I was reading across the internet about my is and my router model and there was the problem... I think!!
I am under a service called CG-NAT
That service provide me an public IP but shared with other clients and it has closed all ports!!!!
I called my ISP to remove me from this CG-NAT service and in 24 hours I'll be out and I'll have my own public IP.
Then I could open the ports I need to my computer and I hope the VPN server and other services will work fine!!!!
I'll tell you every step that happens!!!!!
A million of thanks!!!!!!!!!!!!

Hey @koliflores, I'm so glad to hear this update. Yes, CGNAT can be very problematic when it comes to exposing your home services. I assumed based on your router screenshot that you had had luck opening ports before, but maybe not. Anyway, having a dedicated IP will definitely help. Let me know if you're able to get it working after that!

Mission done!!!!!!!
It was the problem!!!!
I was under CG-NAT service and today morning I'm out of this service.....
I've just checked the ports were open and it WORKED!!!!!!! I'm using wireguard VPN server thanks to your support
I'm really so happy !!!!!
Can I support or collaborate with your project  with a donation??????
And if the answer is yes...... How????
A lot of thanks for all your support!!!

Hey @koliflores, I'm so glad to hear that this is resolved. The next step will be to ensure that everything continues to work after a restart. 😊
If you wish to donate, there is a Buy Me a Coffee link on my GitHub profile, but please never feel obligated to, especially since I can't always promise support. I just work on this project as a hobby.


 Only when the user clicks to expand the dependency node the resolving process will start. See gif below.

why there's different colors?

why there's different colors?

Each project item you see has attached its build.gradle or settings.gradle file as it's resourceUri. The color indicates the status of the file. (error, mod, new, ...)

why there's different colors?

Just wrongly assign resourceUri to Dependencies item, will fix it.

update gif:


Not all declared repositories are used for resolving dependencies in pluginManagement.includeBuild build

Build in pluginManagement.includeBuild doesn't search dependency through all repositories
in his own dependencyResolutionManagement\pluginManagement repositories.
Current Behavior
See "Steps to reproduce" and "Context" before.
Dependency is searched only in plugins portal:
Could not resolve all files for configuration 'classpath'.
> Could not find com.avito.android:build-trace:local.
  Searched in the following locations:
    - https://plugins.gradle.org/m2/com/avito/android/build-trace/local/build-trace-local.pom
  If the artifact you are trying to retrieve can be found in the repository but without metadata in 'Maven POM' format, you need to adjust the 'metadataSources { ... }' of the repository declaration.
  Required by:
      unspecified:unspecified:unspecified > project :build-logic-settings:scan-plugin

org.gradle.api.internal.tasks.TaskDependencyResolveException: Could not determine the dependencies of null.
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:71)
        at org.gradle.api.internal.tasks.AbstractTaskDependency.getDependencies(AbstractTaskDependency.java:50)
        at org.gradle.composite.internal.CompositeBuildClassPathInitializer.execute(CompositeBuildClassPathInitializer.java:41)
        at org.gradle.composite.internal.CompositeBuildClassPathInitializer.execute(CompositeBuildClassPathInitializer.java:29)
        at org.gradle.api.internal.initialization.DefaultScriptClassPathResolver.resolveClassPath(DefaultScriptClassPathResolver.java:40)
        at org.gradle.api.internal.initialization.DefaultScriptHandler.getNonInstrumentedScriptClassPath(DefaultScriptHandler.java:96)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.defineScriptHandlerClassScope(DefaultPluginRequestApplicator.java:177)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:142)
        at org.gradle.kotlin.dsl.provider.PluginRequestsHandler.handle(PluginRequestsHandler.kt:48)
        at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator$InterpreterHost.applyPluginsTo(KotlinScriptEvaluator.kt:195)

build-logic-settings/settings.gradle.kts defines other repositories:
pluginManagement {

    repositories {
        gradlePluginPortal()
        mavenLocal()
        mavenCentral()
    }
}
dependencyResolutionManagement {
    repositories {
        gradlePluginPortal()
        mavenLocal()
        mavenCentral()
    }
}

Also worth to mention:

exclusiveContent for this dependency doesn't help to change behavior
Dependencies from mavenCentral are resolved without any issues
Intercepted http requests also shows requests only to plugin portal:

HEAD https://plugins.gradle.org/m2/com/avito/android/build-trace/local/build-trace-local.pom
--> 303

HEAD https://repo.gradle.org/artifactory/jcenter/com/avito/android/build-trace/local/build-trace-local.pom
--> 404

Expected Behavior
Dependencies are resolved from declared repositories in dependencyResolutionManagement.
Context
I'll explain some details about the test project.
It contains two included builds:

build-logic-settings - for settings
build-logic - for buildscripts

Root project:
settings.gradle.kts:
pluginManagement {
    includeBuild("build-logic-settings")
}
...
includeBuild("build-logic")

build-logic project also uses build-logic-settings:
pluginManagement {
    includeBuild("../build-logic-settings")
}

Steps to Reproduce

Checkout https://github.com/avito-tech/avito-android/tree/pluginManagement-repository-issue
make publish_to_maven_local
Uncomment dependency in build-logic-settings/scan-plugin/build.gradle.kts
./gradlew help

Your Environment

Gradle 7.4.1

Can't make a build scan because it fails too early.

I've found the cause in logic. It's a chicken and egg problem.
In the root project:
pluginManagement {
    // at this moment we have no custom repositories for `build-logic-settings`
    includeBuild("build-logic-settings")
}
// plugins from build-logic-settings modifies pluginManagement in this project
plugins {
    id("convention-plugins")
    id("convention-dependencies")
    id("convention-enterprise")
    id("convention-cache")
}

Fix:
pluginManagement {
    repositories { // repos to build included builds
        gradlePluginPortal()
        mavenLocal()
        mavenCentral()
    }
    includeBuild("build-logic-settings")
}

I'm glad you found the solution.


Uninstall of Kabanero 0.3.rc2 not finishing.

I installed the Kabanero 0.3.rc2 release. I then tried to uninstall. The uninstall hangs at

grep '.*.maistra.io'

xargs -r -n 1 oc delete
oc get crds -o name
customresourcedefinition.apiextensions.k8s.io "servicemeshmemberrolls.maistra.io" deleted

Working with Dan , one problem that was seen is that the csv's are not getting cleaned up by uninstall.

oc --all-namespaces=true get csv
NAMESPACE                              NAME                                        DISPLAY                          VERSION              REPLACES                              PHASE
kabanero                               appsody-operator.v0.2.2                     Appsody Operator                 0.2.2                appsody-operator.v0.2.1               Succeeded
kabanero                               elasticsearch-operator.4.2.1-201910221723   Elasticsearch Operator           4.2.1-201910221723                                         Succeeded
kabanero                               knative-eventing-operator.v0.9.0            Knative Eventing Operator        0.9.0                knative-eventing-operator.v0.8.0      Succeeded
kabanero                               openshift-pipelines-operator.v0.7.0         OpenShift Pipelines Operator     0.7.0                openshift-pipelines-operator.v0.5.2   Succeeded
kabanero                               serverless-operator.v1.1.0                  OpenShift Serverless Operator    1.1.0                serverless-operator.v1.0.0            Succeeded
kabanero                               servicemeshoperator.v1.0.2                  Red Hat OpenShift Service Mesh   1.0.2                servicemeshoperator.v1.0.1            Succeeded
openshift-monitoring                   appsody-operator.v0.2.2                     Appsody Operator                 0.2.2                appsody-operator.v0.2.1               Succeeded
openshift-monitoring                   elasticsearch-operator.4.2.1-201910221723   Elasticsearch Operator           4.2.1-201910221723                                         Succeeded
openshift-monitoring                   jaeger-operator.v1.13.1                     Jaeger Operator                  1.13.1                                                     Succeeded
openshift-monitoring                   knative-eventing-operator.v0.9.0            Knative Eventing Operator        0.9.0                knative-eventing-operator.v0.8.0      Succeeded
openshift-monitoring                   serverless-operator.v1.1.0                  OpenShift Serverless Operator    1.1.0                serverless-operator.v1.0.0            Succeeded
openshift-monitoring                   servicemeshoperator.v1.0.2                  Red Hat OpenShift Service Mesh   1.0.2                servicemeshoperator.v1.0.1            Succeeded
openshift-operator-lifecycle-manager   appsody-operator.v0.2.2                     Appsody Operator                 0.2.2                appsody-operator.v0.2.1               Succeeded
openshift-operator-lifecycle-manager   elasticsearch-operator.4.2.1-201910221723   Elasticsearch Operator           4.2.1-201910221723                                         Succeeded
openshift-operator-lifecycle-manager   jaeger-operator.v1.13.1                     Jaeger Operator                  1.13.1                                                     Succeeded
openshift-operator-lifecycle-manager   knative-eventing-operator.v0.9.0            Knative Eventing Operator        0.9.0                knative-eventing-operator.v0.8.0      Succeeded
openshift-operator-lifecycle-manager   openshift-pipelines-operator.v0.7.0         OpenShift Pipelines Operator     0.7.0                openshift-pipelines-operator.v0.5.2   Succeeded
openshift-operator-lifecycle-manager   packageserver                               Package Server                   0.11.0                                                     Succeeded
openshift-operator-lifecycle-manager   serverless-operator.v1.1.0                  OpenShift Serverless Operator    1.1.0                serverless-operator.v1.0.0            Succeeded
openshift-operator-lifecycle-manager   servicemeshoperator.v1.0.2                  Red Hat OpenShift Service Mesh   1.0.2                servicemeshoperator.v1.0.1            Succeeded

Ran oc --all-namespaces=true delete csv --all to try to clean that up and then ran uninstall again
but it hung in the same place.
Dan saw this while helping me

The uninstall order is: remove the instance, remove the subscription,csv, then make sure the crds are deleted
but somehow the instance is still there
but it wont clean up because the controller is already removed

Tried this

oc get --all-namespaces=true servicemeshcontrolplanes.maistra.io
NAMESPACE      NAME            READY
istio-system   basic-install   True
[root@css-inf ~]# oc -n istio-system delete servicemeshcontrolplanes.maistra.io basic-install
servicemeshcontrolplane.maistra.io "basic-install" deleted

This also hung. I am unable to get uninstall to finish.
I tried to reinstall to put the controllers back  and it got stuck

oc get clusterserviceversion servicemeshoperator.v1.0.2 -n openshift-operators '--output=jsonpath={.status.phase}'

I never saw the pod try to start .
I am not the only one seeing install and uninstall problems.
Let me know what logs or info you need.

@marikaj123 we think this is a stop-ship candidate for 0.3.0

Platform Issue to pull images from registery.

Added additional CSV cleanup. Change is in master, after 3.0-rc3

The fix is in Master.


Enable Prevent installation of devices that match these device setup classes.

The example of the proper usage of "Enable Prevent installation of devices that match these device setup classes" is missing from the subsection "Prevent installation and usage of USB drives and other peripherals".

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f395d314-f7cd-6d89-b392-b0af0e527d36
Version Independent ID: dffc4bff-3403-9b7a-3ccb-69f92ece2672
Content: How to control USB devices and other removable media using Intune (Windows 10) - Windows security
Content Source: windows/security/threat-protection/device-control/control-usb-devices-using-intune.md
Product: w10
Technology: windows
GitHub Login: @Dansimp
Microsoft Alias: dansimp

@Pickell. The issue is conformed, I can edit the article, but I don't know how to add screenshots. So i  stopped.

@Pickell @RAJU2529 - Thank you for submitting feedback.
From our understanding, the issue has been resolved based on this merged commit https://github.com/MicrosoftDocs/windows-itpro-docs/commit/c7487990ba3b4e3d9e2374dec0027896b96cb222.
Thank you for your contribution to make the docs better! Much appreciated!


Can't find mapping.txt

An assemble task can have minifyEnabled (hence plugin will think it has a mapping.txt), but if proguard.cfg contains -dontobfuscate it won't create a mapping.txt and the upload task will fail with "file not found".
Removing -dontobfuscate obviously works around it, but will have side effects on the app. The requirement for mapping.txt needs to be configurable.

Verified to work in release 3.0.1, thanks!

great


My computer cannot open software

My computer cannot open software，I have cancelled the cloud archive and checked the integrity of the archive, which is available,

Please verify that the correct location of the ETS2 folder is set in the application's settings.


Updating the MIDL entry to 2021

This updates MIDL to the 2021 deadline.
What should hindex be set to?
See https://2021.midl.io/dates.html for dates.

Thanks!


Cannot replicate inference results

I trained a classification model on DIGITS with two output classes. If I take an image and I perform inference both on DIGITS and with my own code, I get different results. The average accuracy is pretty much the same but the probability scores are very different. I tried to replicate the code from DIGITS but it does not fix the issue. Current my code for inference is like this:
img = cv2.imread(file)
img = np.asarray(img, np.float32) # this does not change the result
preprocessed = get_transformer(input_shape).preprocess('data', img)
test_shape = (1,) + preprocessed.shape
if net.blobs['data'].data.shape != test_shape:
net.blobs['data'].reshape(*test_shape)
net.blobs['data'].data[...] = preprocessed
output = net.forward()
scores = output[net.outputs[-1]].flatten()

The get_transformer() function is the same as in DIGITS. I tried both with mean subtraction and without it but the problem remains.

I managed to improve the results by reading the images with PIL instead of opencv. Is it normal to have a relevant change in accuracy by just changing the library?

openCV processes images in BGR rather than the Digits RGB with PIL. You can get closer results by ensuring you use the BGR flip of open cv. The other part of the discrepancy is the resize function of the images done in PIL and openCV. In my testing I have found that aliasing gets applied and depending on the method used can significantly alter the values of the image during training versus the final inference of the same image if the methods are not consistent.


Use prebuildify before publishing

This related PR added prebuildify, however, it hasn't been added to the prepublishOnly script.
Also, feel free to squash the commits before merging.

I thought I had merged it, sorry.


Fix DomainStack aws resource creation scope (#43)

Use domainStack constructed object as scope for internally created resources

Codecov Report

Merging #44 (71e5c3d) into main (3fb39c8) will increase coverage by 0.07%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##               main      #44      +/-   ##
============================================
+ Coverage     99.15%   99.23%   +0.07%
- Complexity      145      150       +5
============================================
  Files             8        9       +1
  Lines           833      920      +87
  Branches         22       24       +2
============================================
+ Hits            826      913      +87
  Partials          7        7

Flag
Coverage Δ

unittests
99.23% <100.00%> (+0.07%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/main/java/org/wcdevs/blog/cdk/Database.java
98.61% <100.00%> (+0.25%)
:arrow_up:

src/main/java/org/wcdevs/blog/cdk/DomainStack.java
100.00% <100.00%> (ø)

...a/org/wcdevs/blog/cdk/ElasticContainerService.java
99.18% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cd7b9b3...71e5c3d. Read the comment docs.


Remove class attributes

I added an important bit
dfs.read(items=item)

Yes, but maybe in the wrong PR?

I added an important bit
dfs.read(items=item)

Yes, but maybe in the wrong PR? Maybe better in #84 ?

I don't think so.


[CDS-103384] Updated CRON scheduler

The cron expression will be evaluated in UTC time. Only UTC timezone is supported. It does not automatically adjust for daylight saving time (DST) and must be explicitly configured with the correct date and time in UTC.
Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description

Please describe your changes: __________________________________
Jira/GitHub Issue numbers (if any): ______________________________
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Lecture03

Чеснов Антон

Coverage decreased (-21.2%) to 38.947% when pulling 2b9d8b8fd971f0f505d9644d4278f4f965f1849a on Kartoxa1011:lecture03 into 354e59d14c8207f1a4977555c3526c00fb22514d on rybalkinsd:lecture03.

Coverage increased (+12.0%) to 72.139% when pulling 3b9365ad463e04d527bee99b55bc0aaa6a7abcfe on Kartoxa1011:lecture03 into 354e59d14c8207f1a4977555c3526c00fb22514d on rybalkinsd:lecture03.

2


Add options for history change

[AS-IS]
Only shallow routing; now it replaces querystring only, no history changes
[TO-BE]
Add option for deep routing; it would better to go back go foward based on history stack with querystring changes

Done