
Security News
npm ‘is’ Package Hijacked in Expanding Supply Chain Attack
The ongoing npm phishing campaign escalates as attackers hijack the popular 'is' package, embedding malware in multiple versions.
This package allows authorised users of the ATLAS Transient web server to query the server without being exposed to regular or code breaking changes to the underlying API. In particular we have in mind bots and other automated services.
It also allows users the make routine queries in a friendlier way, such as:
The ATLAS Transient web server is our production server for the survey, and we cannot give unlimited access to manage the load on our machines.
Anyone with legitimate scientific interests can apply for access by submitting a 1-page max science case to the Data Request Form, justifying your access needs (length of time and whether you need Write access - you probably do not).
The ATLAS team will review requests at least once a month on the first Friday. If you require urgent access email hfstevance@gmail.com with the subject line after submitting the form: "Urgent ATLAS access request - [Proposal Title]". The [Proposal Title] should be the same as the one submitted in the form.
Once you have been granted access you will receive an email with your username and a one-time use password which you will have to change on your first login.
Once you have access to the web server you can get a token for API access by using the
APIClient.refresh_token() method
.
This will generate a token for you and save it in the config file defined within the API_CONFIG_FILE
variable in the atlasapiclient/utils.py file
.
For example:
from atlasapiclient import client as atlaspaiclient
client = atlaspaiclient.APIClient()
client.refresh_token()
The server doesn't store your email address so it can't send you an email to reset the password. If you forget it for good, you will need to email hfstevance@gmail.com of ken.smith@physics.ox.ac.uk. We will then use our admin super powers to reset your password to a one-time use password which you will then be able to reset.
There is a full docs page where you can see some more verbose tutorials with pictures. Here is a little cheat sheet with just some code.
pip install --user atlasapiclient
git clone git@github.com:HeloiseS/atlasapiclient.git
The client requires a config ile that contains the base url of the ATLAS transient web servers and your token for the ATLAS API.
In the directory atlasapiclient/config_files
you will find the api_config_template.yaml
file.
api_config_MINE.yaml
. YES - THE NAME MATTERScd atlasapiclient/config_files
cp api_config_template.yaml api_config_MINE.yaml
from atlasapiclient import client as atlaspaiclient
client = atlaspaiclient.ConeSearch(payload={'ra': 150,
'dec': 60,
'radius': 60,
'requestType': 'nearest'},
get_response=True)
To get the data:
from atlasapiclient import client as atlaspaiclient
atlas_id = '1161600211221604900'
client = atlaspaiclient.RequestSingleSourceData(atlas_id=atlas_id, get_response=True)
To extract the light curve data from the JSON:
import pandas as pd
detections = pd.DataFrame(client.response_data[0]['lc'])
non_dets = pd.DataFrame(client.response_data[0]['lcnondets'])
To make a neat plot:
import matplotlib.pyplot as plt
mjd_min, mjd_max= 58277, 58327
filter_colors = {'c': 'blue', 'o': 'orange'}
fig, ax = plt.subplots()
# Plot detections, colored by filter
for f in ['c', 'o']:
df = detections[detections['filter'] == f]
ax.scatter(df.mjd, df.mag, color=filter_colors[f], label=f'filter {f}')
# Plot non-detections with down arrows and lower alpha
for f in ['c', 'o']:
df = non_dets[non_dets['filter'] == f]
ax.scatter(
df.mjd, df.mag5sig,
color=filter_colors[f],
alpha=0.3,
marker='v', # down arrow
label=f'non-det {f}'
)
ax.set_xlim(mjd_min, mjd_max)
ax.set_ylim(20, 13)
ax.set_xlabel('MJD')
ax.set_ylabel('Magnitude')
ax.legend()
from atlasapiclient import client as atlaspaiclient
client = RequestMultipleSourceData(atlas_ids=YOUR_LIST_OF_IDS, mjdthreshold = LOWER_MJD_THRESHOLD)
client.chunk_get_response() # Chunks the list of IDs into a bunch of payloads and colates the responses.
As ATLAS users your first name and last name will be stored on our server. Your email address will be stored on a Google Drive spreadsheet alongside the information provided with your Data Access Request Form. We store this data because it is required to provide you access to this service and we will only store it as long as needed to provide this service. The ATLAS user list will be reviewed twice a year: In November and in May. If your Data Access Request is out of date, or if you have not logged into the server since the last review, we will email you with a two-week deletion warning. If we receive no response, your profile will be deleted and your access revoked. If you would like us to delete your data sooner, send an email to hfstevance@gmail.com and we will remove your account and associated data.
Who can see my data?: All users of the server can see your name.surname when you comment. Your email is stored in a private Google Drive spreadsheet that only a couple of project administrators can access.
We will never share your data with third parties
Feel free to report any API bugs or missing features by opening an Issue on this repo.
If you have questions that do not fit in an issue (or we are taking too long to reply) you can email hfstevance@gmail.com
If you would like to contribute to this project you are welcome to fork and open a pull request however we strongly recommend asking the dev team (via hfstevance@gmail.com) before you start putting in some work. It's possible that changes you want to make would require other changes in our telescope pipelines and if we do not have the resources to refactor those codes, or if your changes are incompatible with our other pipelines, we may have to deny what could look like a very sensible PR.
If there are good first issues we will flag them clearly.
Software in science needs recognition so we can keep funding and human resources allocated. Please cite this DOI in your TNS reports and papers if you used our code, and thank you!
.. image:: https://zenodo.org/badge/804295497.svg :target: https://doi.org/10.5281/zenodo.14331062
FAQs
API Client utility package for the ATLAS Transient Server
We found that atlasapiclient demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The ongoing npm phishing campaign escalates as attackers hijack the popular 'is' package, embedding malware in multiple versions.
Security News
A critical flaw in the popular npm form-data package could allow HTTP parameter pollution, affecting millions of projects until patched versions are adopted.
Security News
Bun 1.2.19 introduces isolated installs for smoother monorepo workflows, along with performance boosts, new tooling, and key compatibility fixes.